-
Notifications
You must be signed in to change notification settings - Fork 0
Core framework code style
The following code style is used for Yii 1.x development. If you want to pull-request code into the core, consider using it. We aren't forcing you to use this code style for your application. Feel free to choose what suits you better.
There is a CodeSniffer ruleset for this standard developed by @Ardem: https://github.com/Ardem/yii-coding-standard
- Overview
- Files MUST use only
<?phptags. - Files MUST use only UTF-8 without BOM for PHP code.
- Code MUST use tabs for indenting, not spaces.
- Class names MUST be declared in
StudlyCaps. - Class constants MUST be declared in all upper case with underscore separators.
- Method names MUST be declared in
camelCase. - Property names MUST be declared in
camelCase. - Property names MUST start with an initial underscore if they are private.
- Indentation uses Allman style with single line expressions on next line, without braces.
- Always
elseifinstead ofelse if.
- Files
PHP code MUST use the long <?php ?> tags; it
MUST NOT use the other tag variations.
PHP code MUST use only UTF-8 without BOM.
- Class Names
Class names MUST be declared in StudlyCaps. Core classes should be prefixed with C. For example, CController, CWidget. Application and extension classes should not use C as prefix. For extensions it's common to use E.
- Classes
The term "class" refers to all classes and interfaces here.
Class constants MUST be declared in all upper case with underscore separators. For example:
<?php
class Foo
{
const VERSION='1.0';
const DATE_APPROVED='2012-06-01';
}Property names MUST be declared in camelCase.
Property names MUST start with an initial underscore if they are private.
For example:
<?php
class Foo
{
public $publicProp;
protected $protectedProp;
private $_privateProp;
}Method names MUST be declared in camelCase().
@param, @var, @property and @return must declare types as boolean, integer, string, array or null. You can use a class names as well such as CModel or CActiveRecord. For a typed arrays use ClassName[].
-
__constructshould be used instead of PHP 4 style constructors. - When instantiating class it should be
new MyClass();instead ofnew MyClass;.