CodingStandards » History » Version 56
« Previous -
Version 56/64
(diff) -
Next » -
Current version
yllen, 12/22/2010 04:00 PM
validate on 09/07/09
Indentation¶
3 spaces
Line width : 100
<?php // base level // level 1 // level 2 // level 1 // base level ?>
STATE : accepted : 3 spaces / 100 chars max
Control structures¶
Multiple conditions in several idented lines
<?php if ($test1) { for ($i=0 ; $i<$end ; $i++) { echo "test ".( $i<10 ? "0$i" : $i )."<br>"; } } if ($a==$b || ($c==$d && $e==$f)) { ... } else if { ... } switch ($test2) { case 1 : echo "Case 1"; break; case 2 : echo "Case 2"; // No break here : because... default : echo "Default Case"; } ?>
STATE : accepted
Including files¶
include_once in order to include the file once and to raise warning if file does not exists
include_once(GLPI_ROOT."/inc/includes.php");
STATE : accepted
TODO : require_once , include, require -> include_once
PHP tags¶
Short tag not allowed. Use complet tags.
<?php // code ?>
STATE : accepted
TODO : nothing
Functions¶
Function names should be written in camelBack, for example:
<?php function userName($a, $bldkjqmjk , $cldqkjmlqdsjkm, $ldqjlqdskj, $peaoizuoiauz, $lqdkjlqsdmj) { } ?>
STATE : accepted
TODO : check all functions
Class¶
Class names should be written in CamelCase, for example:
<?php class [[ExampleAuthentification]] { } ?>
STATE : accepted
TODO : check all classes
Variables¶
Variable names should be as descriptive and short as possible.
Normal variables should be written in lower case. In case of multiple words use the _ separator.
Global variables should be written in UPPER case. In case of multiple words use the _ separator.
Example:
<?php $user = 'glpi'; $users = array('glpi', 'glpi2', 'glpi3'); // put elements in alphabetic order $users_groups = array('glpi', 'glpi2', 'glpi3'); $CFG_GLPI = array(); ?>
STATE : accepted
Variable types¶
Variable types for use in DocBlocks for Doxygen:
Type | Description | |||
mixed | A variable with undefined (or multiple) type. | |||
integer | Integer type variable (whole number). | |||
float | Float type (point number). | |||
boolean | Logical type (true or false). | |||
string | String type (any value in "" or ' '). | |||
array | Array type. | |||
object | Object type. | |||
ressource | Resource type (returned by for example mysql_connect()). |
Inserting comment in source code for doxygen.
Result : full doc for variables, functions, classes...
STATE : accepted
TODO : check all source code
quotes / double quotes¶
echo 'dqmkdqmsl'; echo 'toto'.$test.' est vivant';
After reading bench about strings : http://www.estvideo.net/dew/index/page/phpbench
- Best choice seems to be simple quote.
ex : echo 'toto' not echo "toto"
- best is to concat vars and string.
ex : echo 'toto'.$test.' est vivant.'
- Best choice between echo and print is echo.
- Best choice to construct string before make echo, result : decrease number of use echo.
Performance says to use simple quotes but it make using \n slower (using a constant)
Conclusion : Use double quotes (more lisible)
STATE : accepted
TODO : check all source code
Files¶
Name in lower case.
Maximum line length : 100 characters
STATE : accepted
TODO : check all files
Constants¶
Capital letter :
COMPUTER_TYPE
STATE : accepted
TODO : check all constants
MySQL¶
Queries must be written onto several lines, one MySQL item by line.
All MySQL words in UPPER case.
All item based must be slash protected (table name, field name, condition).
All values from variable, even integer should be single quoted
$query = "SELECT * FROM `glpi_computers` LEFT JOIN `xyzt` ON (`glpi_computers`.`fk_xyzt` = `xyzt`.`id` AND `xyzt`.`toto` = 'jk') WHERE @id@ = '32' AND ( `glpi_computers`.`name` LIKE '%toto%' OR `glpi_computers`.`name` LIKE '%tata%' ) ORDER BY `glpi_computers`.`date_mod` ASC LIMIT 1";
STATE : accepted
TODO : check all source code