Penerapan MVC yang Baik dalam Yii Framework

Model

  • Memiliki property sesuai dengan data yang diwakili serta code untuk validasinya.
  • Boleh berisi manipulation code namun tidak boleh memperumit dan memperbesar scala model.
  • Tidak boleh berisi logic yang berhubungan langsung dengan end user seperti penggunaan $_GET, $_POST, atau variabel sejenis yang berhubungan erat dengan request end-user.
  • Menghindari meng-embed HTML atau code presentasional lainnya.

View

  • Mengandung code presentasional, seperti HTML, dan code PHP sederhana untuk melintasi, memformat dan me-render data.
  • Menghindari code yang melakukan query DB secara langsung.
  • Menghindari akses langsung $_GET, $_POST, atau variabel sejenisnya yang mewakili request end user.
  • Boleh mengakses langsung properti dan method dari controller dan model. Namun, harus dilakukan hanya untuk tujuan presentasi.

Controller

  • Boleh mengakses $_GET, $_POST dan variabel PHP lain yang merepresentasikan user request.
  • Membuat berbagai instance model dan mengatur siklus hidupnya.
  • Menghindari menampung statement SQL.
  • Menghindari HTML apapun atau markup presentasional.