PHP(5)Code Standard
?
?
1. Autoloading Standard
?
Mandatory
?
\<Vendor Name>\(<Namespace>)*<Class Name>
?
?
?
Underscores in Namespaces and Class Names
?
Actually, underscore means another directory for class name.
?
?
?
example
?
\namespace\package\Class_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php
?
\namespace\package_name\Class_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php
?
?
?
Here is how we load the PHP class.
?
https://gist.github.com/jwage/221634
?
?
?
2. Basic Coding Standard
?
PHP code MUST use only UTF-8 without BOM.
?
?
?
3. Coding Style Guide
?
Code MUST use 4 spaces for indenting, not tabs.
?
?
?
Learn from one colleague, In Sublime, click on the line, we saw “Tab Size” at the bottom.
?
?
?
We can go to [View]>[Indentation]>Convert Indentation to Space and check [Indent Using Space]
?
?
?
There MUST be one blank line after the namespace declaration, and there MUST be one blank line after the block of use declarations.
?
?
?
Opening braces for classes MUST go on the next line, and closing braces MUST go on the next line after the body.
?
?
?
Opening braces for methods MUST go on the next line, and closing braces MUST go on the next line after the body.
?
?
?
Visibility MUST be declared on all properties and methods;
?
?
?
Control structure keywords MUST have one space after them, method and function calls MUST NOT
?
?
?
Opening braces for control structures MUST go on the same line, and closing braces MUST go on the next line after the body.
?
?
?
Opening parentheses for controller structures MUST NOT have a space after them, and closing parentheses for control structures MUST NOT have a space before.
?
?
?
The closing ?> tag MUST be omitted from files containing only PHP.
?
?
?
There MUST NOT be trailing whitespace at the end of non-blank lines.
?
?
?
Blank lines MAY be added to improve readability and to indicate related blocks of code.
?
?
?
PHP keywords and True/False/Null MUST be in lower case. true, false, null.
?
?
?
all use declarations MUST go after the namespace declaration.
?
?
?
Visibility MUST be declared on all properties.
?
?
?
The var keyword MUST NOT be used to declare a property.
?
?
?
There MUST NOT be more than one property declared per statement.
?
?
?
4. Logger Interface
?
?
?
?
?
?
?
References:
?
http://www.php-fig.org/psr/psr-1/
?
http://www.php-fig.org/psr/psr-0/
?
http://www.php-fig.org/psr/psr-2/
?
?
?
?
?
?
?
?
?
?
?
?