Comment contrôler la qualité de vos projets PHP & Symfony ?

Data 4 Everyone!
4 min readNov 8, 2021

L’écosystème PHP est incroyable de par la qualité des outils que vous avez à votre disposition pour monitorer et améliorer la qualité de vos applications PHP.

Dans cette série d’articles, je vais vous montrer comment mettre en place et utiliser les outils PHPStan et PHP-CS-Fixer d’une part.

Ensuite, vous apprendrez comment empêcher la publication de code qui ne respecte pas les contrôles effectués par ces outils à l’aide des hooks git.

Et enfin, je vous partagerai ma configuration GitHub actions pour mettre en place un environnement d’intégration continu minimaliste.

Les tests ne seront pas abordés dans cette série : mais s’ils sont importants, vous comprendrez que la mise en place de ces premiers outils va également réduire drastiquement la quantité de tests à écrire !

Si vous ne l’avez pas déjà lu, une bonne introduction à cet article serait mon retour d’expérience sur les 3000 code reviews que j’ai pu faire lors de ma précédente vie de contributeur open source.

S’il ne faut retenir qu’une idée qui doit motiver votre volonté d’amélioration de vos pratiques, c’est qu’il faut automatiser tout ce qui peut l’être.

Une introduction au logiciel PHPStan

Le logo du logiciel PHPStan

Nous disposons dans l’écosystème PHP de nombreux outils d’analyse statique et parmi ceux-là PHPStan est le plus abouti et le plus populaire.

Actuellement en version 1.1.1 (au 8/11/2021), cet logiciel développé en PHP parcourt votre code et applique un certain nombre de règles.

Ces règles sont associées à des “niveaux” de qualité et à date il y a 9 niveaux de qualité (on pourrait dire “difficulté” à ce stade 😉) : évidemment, plus vous montez de niveau et plus le nombre de règles à respecter augmente !

Si vous souhaitez essayer l’outil sur un projet d’exemple, vous pouvez télécharger celui-ci préparé pour l’occasion.

Installer et mettre en place PHPStan

S’il y a toujours la possibilité d’utiliser Docker pour exécuter PHPStan, je préfère l’ajouter en prérequis de développement dans Composer :

--

--