Commit 57bf3157 by Alexander Makarov

more on code standard

parent 251f6446
...@@ -5,25 +5,30 @@ This code standard is used for all the Yii2 core classes and can be applied to ...@@ -5,25 +5,30 @@ This code standard is used for all the Yii2 core classes and can be applied to
your application in order to achieve consistency among your team. Also it will your application in order to achieve consistency among your team. Also it will
help in case you want to opensource code. help in case you want to opensource code.
PHP file formatting PHP file formatting
------------------- -------------------
### General ### General
- Do not use `?>` for files containing PHP code only. - Do not end file with `?>` if it contains PHP code only.
- Do not use `<?`. Use `<?php` instead.
- Files should be encoded in UTF-8. - Files should be encoded in UTF-8.
- Any file that contains PHP code should end with the extension `.php`.
- Do not add trailing spaces to the end of the lines.
### Indentation #### Indentation
All code must be indented with tabs. That includes both PHP and JavaScript code. All code must be indented with tabs. That includes both PHP and JavaScript code.
### Maximum Line Length #### Maximum Line Length
We're not strictly limiting maximum line length but sticking to 80 characters We're not strictly limiting maximum line length but sticking to 80 characters
where possible. where possible.
### Line Termination ### PHP types
All PHP types and values should be used lowercase. That includes `true`, `false`,
`null` and `array`.
### Strings ### Strings
...@@ -104,9 +109,8 @@ $config = array( ...@@ -104,9 +109,8 @@ $config = array(
- Every class must have a documentation block that conforms to the PHPDoc. - Every class must have a documentation block that conforms to the PHPDoc.
- All code in a class must be indented with a signle tab. - All code in a class must be indented with a signle tab.
- Only one class is permitted per PHP file. - Only one class is permitted per PHP file.
- When declaring public class members specify `public` keyword explicitly. - All classes should be namespaced.
- Variables should be declared at the top of the class before any method declarations. - Class name should match file name. Class namespace should match directory structure.
- Private variables should be named like `$_varName`.
~~~ ~~~
/** /**
...@@ -118,11 +122,36 @@ class MyClass extends \yii\Object implements MyInterface ...@@ -118,11 +122,36 @@ class MyClass extends \yii\Object implements MyInterface
} }
~~~ ~~~
### Class members and variables
- When declaring public class members specify `public` keyword explicitly.
- Variables should be declared at the top of the class before any method declarations.
- Private and protected variables should be named like `$_varName`.
- Public class members and standalone variables should be named using `$camelCase`
with first letter lowercase.
- Use descriptive names. Variables such as `$i` and `$j` are better not to be used.
### Constants
Both class level constants and gloval constants should be named in uppercase. Words
are separated by underscore.
~~~
class User {
const STATUS_ACTIVE = 1;
const STATUS_BANNED = 2;
}
~~~
It's preferrable to define class level constants rather than global ones.
### Functions and methods ### Functions and methods
- Functions and methods should be named using `camelCase` with first letter lowercase. - Functions and methods should be named using `camelCase` with first letter lowercase.
- Name should be descriptive by itself indicating the purpose of the function.
- Class methods should always declare visibility using `private`, `protected` and - Class methods should always declare visibility using `private`, `protected` and
`public` modifiers. `public` modifiers. `var` is not allowed.
~~~ ~~~
/** /**
...@@ -213,9 +242,10 @@ Do not omit `break`. ...@@ -213,9 +242,10 @@ Do not omit `break`.
### Code documentation ### Code documentation
- Refer ot [phpDoc](http://phpdoc.org/) for documentation syntax. - Refer ot [phpDoc](http://phpdoc.org/) for documentation syntax.
- Code without any documentation is not allowed. - Code without documentation is not allowed.
- All class files must contain a "file-level" docblock at the top of each file - All class files must contain a "file-level" docblock at the top of each file
and a "class-level" docblock immediately above each class. and a "class-level" docblock immediately above each class.
- There is no need to use `@return` if method does return nothing.
#### File #### File
...@@ -271,7 +301,13 @@ public function getEventHandlers($name) ...@@ -271,7 +301,13 @@ public function getEventHandlers($name)
} }
~~~ ~~~
### Other library and framework standards Yii application naming conventions
----------------------------------
Other library and framework standards
-------------------------------------
It's good to be consistent with other frameworks and libraries whose components It's good to be consistent with other frameworks and libraries whose components
will be possibly used with Yii2. That's why when there are no objective reasons will be possibly used with Yii2. That's why when there are no objective reasons
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment