PSR : Les bonnes pratiques PHP

PSR : Les bonnes pratiques PHP

Les bonnes pratiques permettent d’éviter les difficultés liées a un code difficilement compréhensible, voir même illisible des fois et facilite la collaboration entre les développeurs. Pour créer un code dans les règles de l’art en PHP, le groupe PHP Framework Interop (PHP FIG) , met à notre disposition un ensemble de standards et des normes, spécifiques à la programmation PHP ce sont les PSR (PHP Standard Recommandation).

Donc à quoi correspondent ces PSR ? Et c’est quoi ce groupe de travail à l’origine des PSR.

PHP FIG : Le groupe PHP Framework Interop

Le groupe PHP Framework Interop , ou PHP FIG tel qui est connu, est un groupe de travail regroupant des acteurs majeurs du monde PHP. Cette organisation regroupe l’essentiel des représentants des plus gros frameworks, CMS et librairies de l’écosystème PHP, parmi lesquels : Doctrine, PEAR, Joomla, Drupal, CakePHP, Symfony, Zend, etc. Il a pour vocation de discuter et valider les recommandations lié au développement PHP. Voilà comment ils se décrivent : 

Nous sommes un groupe de projets PHP établis dont le but est de parler des points communs entre nos projets et de trouver des moyens de mieux travailler ensemble.

LES PSR : PHP Standard Recommandation

Le PSR est une spécification PHP qui sert à la standardisation des concepts de programmation en PHP. L’objectif est de permettre l’interopérabilité des composants et de fournir une base technique commune à la mise en œuvre de concepts pour améliorer les pratiques de programmation.

le respect des normes PSR permet par exemple de pouvoir créer des composants pour Symfony qui fonctionnent avec un autre Framework tel que Laravel .

Les PSR sont nommées de la façon suivant: le préfix PSR – Numéro PSR. Ainsi on a les PSR suivantes: PSR-1, PSR-3…

Les normes PSR ne sont adopter qu’après être passer par un processus assez strict. Voici les différentes états d’une normes PSR:

1- Avant-projet

L’objectif de l’étape est de déterminer si le concept de la proposition est intéressant. Ils forment un groupe de travail qui sera responsable de la rédaction du standard.

2- Brouillon

Pendant cette étape, le groupe de travail créé va travaille sur le standard et le modifie pour qu’il soit examinée par le Comité principal.

3- La revue 

La phase d’examen est une occasion pour la communauté d’expérimenter la proposition. Pendant cette phase, des implémentations sont essayées. Si, après quatre semaines minimum, deux implémentations viables sont démontrées, le standard peut passer au vote d’acceptation final.

5- Accepté

Si une proposition est acceptée, elle devient officiellement une norme PSR .

6- Déprécié

Un PSR déprécié est un PSR qui a été approuvé, mais n’est plus considéré comme pertinent ou recommandé.

7- Abandonné

Après qu’un PSR est marqué déprécié, elle est abandonné après un certains temps.

Voici la liste actuel des différents normes PSR.

IdentifientTitreDescriptionStatut
PSR-0Autoloading StandardCe PSR décrit le standard de chargement automatique. Il a été remplacé par la norme PSR-4.Déprécié
PSR-1Basic Coding StandardCette norme comprend ce qui doit être considéré comme les éléments de codage standard nécessaires pour assurer un haut niveau d’interopérabilité technique entre le code PHP partagé.Accepté
PSR-2Coding Style GuideCette norme énumère un ensemble partagé de règles et d’attentes sur la façon de formater le code PHP.Déprécié
PSR-3Logger InterfaceCette norme décrit une interface simple et universelle pour les bibliothèques de journalisation.Accepté
PSR-4Autoloading StandardCe PSR décrit une spécification pour les classes de chargement automatique à partir des chemins de fichier.Accepté
PSR-5PHPDoc StandardLe but principal de ce PSR est de fournir une définition complète et formelle du standard PHPDoc.Draft
PSR-6Caching InterfaceLe but principal de ce PSR est de décrire une interface commune pour les systèmes de mise en cache.Accepté
PSR-7HTTP Message InterfaceCe PSR décrit les interfaces communes pour représenter les messages HTTPAccepté
PSR-8Huggable InterfaceCette norme contient les spécifications d’amélioration de l’esprit de coopération de la communauté PHP à travers un moyen standardisé et un support inter-projets.Abandonné
PSR-9Security AdvisoriesL’objectif du PSR-9est de définir le processus par lequel les problèmes de sécurité sont signalés et résolus dans les projetsAbandonné
PSR-10Security Reporting ProcessL’objectif du PSR-10 est donc de définir comment les problèmes de sécurité sont divulgués au public et quel format ces divulgations devraient suivre.Abandonné
PSR-11Container InterfaceCette norme décrit une interface commune pour les conteneurs d’injection de dépendances.Accepté
PSR-12Extended Coding Style GuideCette spécification étend et remplace le PSR-2, le guide de style de codage et exige le respect du PSR-1, la norme de codage de base.Accepté
PSR-13Hypermedia LinksCette spécification vise à fournir aux développeurs PHP un moyen simple et courant de représenter un lien hypermédia indépendamment du format de sérialisation utilisé.Accepté
PSR-14Event DispatcherLe but de ce PSR est d’établir un mécanisme commun pour l’extension et la collaboration basées sur les événements afin que les bibliothèques et les composants puissent être réutilisés plus librement entre diverses applications et frameworks.Accepté
PSR-15HTTP HandlersCe PSR décrit les interfaces communes pour les gestionnaires de requêtes de serveur HTTP et les composants middleware de serveur HTTP qui utilisent des messages HTTP.Accepté
PSR-16Simple CacheCe PSR décrit une interface simple mais extensible pour un élément de cache et un pilote de cache.Accepté
PSR-17HTTP FactoriesCe PSR décrit une norme commune pour les usines qui créent des objets HTTPAccepté
PSR-18HTTP ClientCette norme décrit une interface commune pour envoyer des requêtes HTTP et recevoir des réponses HTTP.Accepté
PSR-19PHPDoc tagsLe but principal de ce PSR est de fournir un catalogue complet de Tags dans le standard PHPDoc.Brouillon

Conclusion

PHP FIG n’a pas la prétention de se présenter comme un exemple ou des référents en matière de programmation PHP.  Les PSRs sont des « recommandations » et rien ne vous oblige à les suivre.  Par contre ces recommandations sont toutefois appréciées de la communauté PHP et largement reconnues.

Pour en savoir plus sur le PSR vous pouvez visiter le site web du PHP-FGI

Partagez !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *