Back to Opencart

Coding Standard

docs/developer/coding_standard.html

4.1.0.34.1 KB
Original Source

* File types & encoding * PHP tags * Indentation * Spacing * Whitespace * New lines * File naming * Class & method naming * Helper naming * PHP variable naming * User defined constants * PHP constants * HTML / CSS rules * PHP CodeSniffer

File types & encoding

All PHP files with the exception of view/template files have the extension .php

All view/template files have the extension .twig

Line feeds are handled automatically by Git, the repo is managed using LF. When cloning all line feeds will be converted automatically to your native environment (CRLF for Windows, LF for Mac/Linux).

PHP Tags

Short PHP opening tags and ASP tags are not supported. The characters should be lowercase.

&?php

All PHP files must include a closing tag for versions before 2.0. PHP files in and after 2.0 will no longer have a closing tag.

?\>

Indentation

PHP files must be indented using the TAB character. 4 space tabs are not supported.

HTML in template files (.twig) must be indented using 2 spaces, not 4 spaces or TABS. JavaScript must be indented using the TAB character.

Spacing

IF, WHILE, FOR etc should have a space before and after the brackets.

Correct

if () { ###### Incorrect if(){ ELSE etc should have a space after and before the curly braces ###### Correct } else { ###### Incorrect }else{ Type casting does NOT have a space before the variable ###### Correct (int)$var ###### Incorrect (int) $var Setting a variable should always have a space before and after the equals sign ###### Correct $var = 1; ###### Incorrect $var=1; ## Whitespace After any code, but before a new line - there should be no white space. The same is true for an empty line. After the closing PHP tag it is extremely important to remove any white space. ## New Lines Opening curly braces do not go onto a new line, they will always have a space before and be on the same line. 1 True Brace Style (1TBS) (WIKI) ###### Correct if ($my_example == 1) { class ModelExampleExample extends Model { public function addExample() { } else { ###### Incorrect if ($my_example == 1) { class ModelExampleExample extends Model { public function addExample() { } else { ## File naming All files should be in lower case and words separated by an underscore. ## Class & method naming Class names and method names should be camel case. ###### Correct class ModelExampleExample extends Model public function addExample() ###### Incorrect class model_exampleexample extends Model public function add_example() A method scope should always be cast. ###### Correct public function addExample() ###### Incorrect function addExample() ## PHP Function (helpers) naming Helper function names should be lower case and an underscore used to separate words. ## PHP variable naming PHP variables should be lower case and an underscore used to separate words. ###### Correct $var = 123; $new_var = 12345; ###### Incorrect $Var = 123; $newVar = 12345; ## User defined constants User defined constants are set as upper case. ###### Correct define('MY_VAR', 'My constant string value'); ###### Incorrect define('my_var', 'My constant string value'); ## PHP constants These types of constant (true,false,null) are set as lower case ###### Correct $my_var = true; ###### Incorrect $my_var = TRUE; ## HTML / CSS rules Class names and id's should be hyphenated and not use an underscore ###### Correct class="my-class" ###### Incorrect class="my_class" ## PHP CodeSniffer There is a PHP_CodeSniffer standard here: https://github.com/opencart/opencart/tree/master/tests/phpcs/OpenCart You can use this with a command along the following lines if you have PHP_CodeSniffer installed: phpcs --standard=phpcs.xml opencart