Les règles d'écritures de code sont très inspirées des règles PEAR qui sont assez raisonables
Indentation de 4 espaces, sans tabulations. (vim:set et sw=4 sts=4 ts=4)
Ceci concerne les structures if/elseif/else, for, while, switch, ...
- Il faut utiliser les accolades, même lorsqu'elles sont optionnelles.
- Il faut ajouter un espace entre le mot clef et les parenthèses ouvrantes qui le suivent.
- Les tabulations doivent être proscrites
Indentation
Code
<?php
if ((condition1) || (condition2)) {
action1;
} elseif ((condition3) && (condition4)) {
action2;
} else {
defaultaction;
}
?>
if ((condition1) || (condition2)) {
action1;
} elseif ((condition3) && (condition4)) {
action2;
} else {
defaultaction;
}
?>
Structures de Contrôle
Code
<?php
switch (condition) {
case 1:
action1;
break;
case 2:
action2;
break;
default:
defaultaction;
break;
}
?>
switch (condition) {
case 1:
action1;
break;
case 2:
action2;
break;
default:
defaultaction;
break;
}
?>
Les fonctions doivent être appelées :
- avec aucun espace entre le nom de fonction et la parenthès ouvrante qui suit;
- avec des espaces après chaque virgule qui séparent les paramètres;
- sans espace entre le dernier paramètre et le dernier argument, la parenthèse, et le point virgule qui suit.
- en cas d'assignation, il faut ajouter au moins un espace de chaque coté du signe =
- en cas d'assignations par bloc, il est conseillé d'aligner les symboles =
Appels de fonction
Code
<?php
// Exemple 1 : assignation simple :
$var = foo($bar, $baz, $quux);
// Exemple 2 : assignation par bloc :
$short = foo($bar, $baz);
$long_variable = foo($bar, $quux);
?>
// Exemple 1 : assignation simple :
$var = foo($bar, $baz, $quux);
// Exemple 2 : assignation par bloc :
$short = foo($bar, $baz);
$long_variable = foo($bar, $quux);
?>
- Il faut utiliser la convention « one true brace » (passer la première accolade à la ligne).
- Les arguments avec des valeurs par défaut doivent être en dernier dans la liste des arguments.
- Penser à retourner une valeur à chaque fois que cela a du sens, sinon true.
Code
<?php
function fooFunction($arg1, $arg2 = '')
{
if (condition) {
statement;
}
return $val;
}
?>
function fooFunction($arg1, $arg2 = '')
{
if (condition) {
statement;
}
return $val;
}
?>
Déclaration de fonction
Code
<?php
function connect(&$dsn, $persistent = false)
{
if (is_array($dsn)) {
$dsninfo = &$dsn;
} else {
$dsninfo = DB::parseDSN($dsn);
}
if (!$dsninfo || !$dsninfo['phptype']) {
return $this->raiseError();
}
return true;
}
?>
function connect(&$dsn, $persistent = false)
{
if (is_array($dsn)) {
$dsninfo = &$dsn;
} else {
$dsninfo = DB::parseDSN($dsn);
}
if (!$dsninfo || !$dsninfo['phptype']) {
return $this->raiseError();
}
return true;
}
?>
Commentaires
- Les commentaires par bloc /* ... */ et les commentaires lignes // ... sont OK.
- Les commentaires de type shell/perl # ... sont à proscrire (sauf pour mettre un # TODO/XXX/FIXME).
Inclure du code
- Ne jamais utiliser require ou include mais les fonctions require_once et include_once.
- N'utiliser include_once que dans les cas où tout manque de fichier inclus n'est pas critique.
PHP Tags
- Toujours utiliser les tags longs : .
Contenu des fichiers
- Toujours inclure dans les fichiers l'entete GPL.
Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
