Les conventions de nommage en PHP
Article posté le 19-01-2015 dans la catégorie
PHP
Article mis à jour le : 05-05-2022
Article qui récapitule les conventions de nommage à respecter en PHPDévelopper, c'est bien.
Bien développer, c'est mieux... quand on peut. Parce que des fois le contexte (emploi, hiérarchie, projet...) fait que ce n'est pas possible.
Après bon c'est sûr que si vous faites un petit peu de code dans votre coin, ou que vous appliquez un morceau de scotch sur une vieille appli elle-même développée de manière anarchique par le stagiaire en PHP4 il y a 10 ans, le contenu de cet article ne vous concerne pas.
Par contre, en cas de nouveau projet, il y a quelques idées à assimiler ici...
Note : Toutes ces informations, en vrac, proviennent de la documentation PSR-x
Certaines sont évidentes, d'autres moins!
1- Les bases et les généralités
- Les fichiers ne doivent utiliser uniquement les tags suivants : <?php et <?=.
- Les fichiers doivent utiliser UTF-8 sans BOM.
- Les noms des méthodes doivent utiliser le 'camelCase'. Exemple : maMethode.
- Une difficile : un fichier doit soit contenir des déclarations de fichiers, mais pas de code executale.
- Entendre par là, vous pouvez déclarer des variables et des fonctions dans un fichier, mais rien qui ne s'exécute à l'inclusion de ce fichier
- A l'exception du contenu des classes bien entendu
- Le tag de fermeture ?> ne doit pas être mis si le fichier ne contient que du PHP
- Une ligne ne doit pas excéder 120 caractères
- Ne pas laisser d'espaces après le dernier caractères d'un bout de code
- Ne pas hésiter à laisser des lignes vides entre des bouts de codes qui sont liés plus que d'autres pour améliorer la lisibilité
- Pas plus d'une action ou d'une déclaration par ligne
- L'indentation ne se fait pas via la touche tab, mais avec 4 x la touche espace
- Les mots-clefs et constante de PHP doivent être en minscule, par exemple true, false.
2- Autoload et espace de noms, classes et variables
- Les espaces de noms et les classes doivent utiliser l'autoload
- Un nom complet d'espace de nom et de sa classe doit avoir cette forme : <Vendor Name>(<Namespace>)*<Class Name>
- Chaque espace de nom doit avoir tout en haut de son arborescence l'attribut "Vendor Name"
- Il n'y a pas de limitation quant à la quantité de niveaux pour les espaces de nom
- Dans l'espace de nom, chaque séparateur est converti en constante DIRECTORY_SEPARATOR
- Même chose pour le caractère '_' dans le nom de la classe. Par contre, aucune signification dans l'espace de nom
- L'espace de nom doit comporter l'extension .php quand il est chargé par le système
- Les Use doivent apparaitre après les espaces de nom
- Une ligne vide après la fin des déclarations de vos espaces de nom
- Idem pour le bloc de vos Use
- Il n'y a aucune règle quand à l'utilisation de caractères en majuscule ou en minuscule dans l'espace de nom, le nom de la classe ou le vendor name (à l'exception de celle qui suit)
- Les noms de classe doivent respecter ce standard : MaClasse.
- Les constantes de classes doivent être écrites en majuscules, avec un '_' (underscore) pour séparateur.
- Les variables de classes ne devraient pas être précédées d'un underscore pour indiquer leur visibilité (privée ou protégée)
- Les mots clefs abstract ou static doivent passer avant la visibilité d'une variable de classe
- Déclarez une classe par fichier
- Les propriétés de classe avant les méthodes
- Les méthodes dans cet ordre : publiques, protégées, privées.
Exemple d'espace de noms (namespace) : ainsi quand vous tapez dans votre code :
Zend\Mail\Message
Le système devra interpréter :
/path/to/project/lib/vendor/Zend/Mail/Message.php
Cet article vous a plu? Découvrez d'autres articles :