Difference between #2 and #3 of Code style

unchanged
Title
Code style
unchanged
Category
Tips
unchanged
Tags
mvc
changed
Content
Where to put what
------------------

Many time, writing widgets or editing Gii code, there can be the doubt if the
code is following the MVC patter or not.

A few suggestion can help to detected the most evident error of style.

### Controller

In the controller there should be the code for collect user input, retrive
models from database, rendering views.

In a controller there should never be:

 - html code (it should be in the view)
 - sql code (there should never be, if is needed it should stay in a model)
 - field name they should be in the view.

Avoiding embedding field names allow you to change the database with minimal
effort.


### Views

In the views (and only in the views) there should be the html code. 

In the view there should not be:

- user input ($_GET, $_POST) input should be collected in models in the
controllers, never in views.
- sql code: if is neede, better to crete functions in the models

The less php operation there are in the views, the best it is. Instead of
concatnate 2 fields, is better to write a getter method, so you can reuse in
other views.

### Models
The models are used for collect user inputs and access to the database.

In the models there should not be:

- user input ($_GET, $_POST)you should write a function that will be called in
the controller. 
- html code (it should be in the view)

Widgets
------------------

Widgets has a behavior similar to controllers. If a widget is supposed to create
lot of html, better to create a view file for it.
Write new article
  • Written by: zaccaria
  • Updated by: g3ck0
  • Category: Tips
  • Yii Version: 1.1
  • Votes: +29
  • Viewed: 13,601 times
  • Created on: Nov 9, 2010
  • Last updated: Nov 9, 2010
  • Tags: mvc