Code style

  1. Where to put what
  2. Widgets

Where to put what ¶

Often, when writing widgets or editing Yii code, it is unclear whether or not the code is following the MVC pattern.

Here are a few suggestions to help detect the most obvious style errors.

Controller ¶

The controller should contain code for collecting user input, retrieving models from the database, and rendering views.

In a controller there should never be:

  • HTML code: HTML should be in the view
  • SQL code: If needed, SQL should be in a model, encapsulate in methods.
  • Field names: Field names should be in the view

Avoiding embedding field names allows you to change the database easily.

Views ¶

HTML code should only be in views.

Views should not contain:

  • User input (e.g. $_GET and $_POST): Input should be collected in models in the controllers, never in views.
  • SQL: When needed, it is best to create a function in the model

The fewer PHP operations there are in the views, the better it is. Instead of concatenating two fields, it is better to write a getter method, so you can reuse it in other views.

Models ¶

Models are used for collecting user inputs, and accessing the database.

In models there should not be:

  • User input ($_GET, $_POST): You should write a function that will be called in the controller.
  • HTML: HTML should be in a view

Widgets ¶

Widgets have a behaviour similar to controllers. If a widget is supposed to create a lot of HTML, it is better to create a view file for it.

29 0
7 followers
Viewed: 30 681 times
Version: 1.1
Category: Tips
Tags: mvc
Written by: zaccaria zaccaria
Last updated by: g3ck0 g3ck0
Created on: Nov 9, 2010
Last updated: 15 years ago
Update Article

Revisions

View all history

Related Articles