Standardiser son code avec Laravel Pint
Laravel Pint est un outil de correction de style de code PHP qui s'appuie sur PHP-CS-Fixer, permettant de standardiser rapidement le code selon des conventions spécifiques comme PSR-1, PSR-12 et PER. Il est conçu pour être simple à utiliser, sans nécessiter de configuration préalable, tout en offrant la possibilité de personnaliser les règles via un fichier de configuration.
Installation
Pour installer Laravel Pint, il vous faudra au minimum PHP 8. Le package s'installe facilement avec composer :
1composer require --dev laravel/pint
Ce package ne nécessite pas de configuration particulière. Il est déjà configuré par défaut pour Laravel.
Utilisation
Pour utiliser l'outil, il suffit de le lancer avec la commande
1./vendor/bin/pint
Il est également possible de passer quelques paramètres à la commande :
1./vendor/bin/pint app/Models # Exécute pint sur un répertoire spécifique2./vendor/bin/pint app/Models/User.php # Exécute pint sur un fichier spécifique3./vendor/bin/pint -v # Mode verbeux pour afficher le détail des changements4./vendor/bin/pint --test # Inspecte le code sans faire de modifications et affiche la sortie5./vendor/bin/pint --dirty # Modifie uniquement les fichiers non commités dans GIT6./vendor/bin/pint --repair # Corrige les erreurs et quitte le programme avec un code de sortie différent de 0 si des erreurs ont été corrigées
Configuration spécifique
Comme mentionné précédemment, Laravel Pint est par défaut configuré avec un preset pour Laravel. Il existe d'autres presets pouvant être utilisés :
1./vendor/bin/pint --preset laravel # Preset par défaut, utilisé pour Laravel2./vendor/bin/pint --preset empty # Preset vide, il faudra configurer les éléments dans le fichier de configuration3./vendor/bin/pint --preset symfony # Preset pour le style de code Symfony4./vendor/bin/pint --preset psr12 # Preset PSR-125./vendor/bin/pint --preset per # Preset PER, nouveau style de code qui étend PSR-12
Si une règle d'un preset ne vous convient pas, il est possible de la modifier en créant un fichier pint.json
à la racine du projet. Comme le package est basé sur PHP-CS-Fixer, il est possible d'utiliser n'importe laquelle de ses règles pour votre configuration.
1{2 "preset": "laravel",3 "rules": {4 "simplified_null_return": true,5 "braces": false6 }7}
Il est également possible d'exclure des dossiers ou fichiers en ajoutant des sections au fichier de configuration.
Exclure un dossier spécifique
1{2 "exclude" : [3 "app/services"4 ]5}
Exclure tous les fichiers contenant le pattern en suffix -test-A.php
1{2 "notName" : [3 "*-test-A.php"4 ]5}
Exclure des fichiers spécifiques
1{2 "notPath" : [3 "app/services/test-B.php",4 "app/services/test-C.php"5 ]6}