Programmation PHP/Bonnes pratiques

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Conventions de codage[modifier | modifier le wikicode]

La programmation objet en PHP est régie par des recommandations nommées PSR (pour PHP Standards Recommendations) publiées sur http://www.php-fig.org/psr/.

PSR-1 : conventions de codages basiques[modifier | modifier le wikicode]

Les voici résumées ici[1] :

  • Un fichier .php doit être encodé en UTF8 sans BOM.
  • Les noms de classe doivent être rédigés en StudlyCaps (commencer par une majuscule).
  • Les noms des variables et méthodes de classe doivent être écris en camelCase (en commençant par une minuscule).
  • Les noms des constantes doivent être en lettres capitales et snake_case (en séparant les mots par des underscores). Comme par exemple la native DIRECTORY_SEPARATOR.

PSR-2 : guide de style[modifier | modifier le wikicode]

Cette norme inclut la première, plus :

  • Les alinéas doivent faire quatre espaces. Presser la touche "tabulation" peut le faire automatiquement en réglant les IDE.
  • Les lignes ne doivent pas dépasser 120 caractères (les IDE peuvent dessiner une ligne verticale à ce niveau).

Les normes suivantes proposent des implémentations d'architectures logicielles (voir PHP Standard Recommendation sur Wikipédia (en anglais) Article sur Wikipédia).

SOLID[modifier | modifier le wikicode]

Les principes de programmation objet SOLID permettent des codes avec une bonne couverture en tests unitaires et peu de conflits de commits entre les branches du SGV.

Une fonction ne doit faire qu'une seule chose[modifier | modifier le wikicode]

Afin de comprendre tout ce que fait une fonction par son nom sans avoir à la relire, et de réaliser facilement ses tests unitaires, il convient de lui confier un seul rôle, et de ne pas lui injecter plus de deux arguments (en les remplaçant par une classe de configuration à plusieurs attributs[2], ou un tableau).

Optimisation des performances[modifier | modifier le wikicode]

PHP permet d'aboutir à un même résultat de plusieurs manières différentes. Toutefois, certaines sont préconisées pour gagner en performance :

Condition Yoda[modifier | modifier le wikicode]

Lors d'une comparaison entre une variable et un littéral, on place ce dernier en premier (ex : if 1 == $x).

Évitement des else[modifier | modifier le wikicode]

Un return après chaque if est plus performant que des return dans des else if.

Passage par référence des tableaux[modifier | modifier le wikicode]

Utiliser les références dans les arguments tableaux volumineux (function fonction(&$tableau)), pour éviter sa duplication en mémoire.

Références[modifier | modifier le wikicode]


Voir aussi[modifier | modifier le wikicode]