Php
Laravel
2 min
Mis en ligne le 27/08/2024

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écifique
2./vendor/bin/pint app/Models/User.php # Exécute pint sur un fichier spécifique
3./vendor/bin/pint -v # Mode verbeux pour afficher le détail des changements
4./vendor/bin/pint --test # Inspecte le code sans faire de modifications et affiche la sortie
5./vendor/bin/pint --dirty # Modifie uniquement les fichiers non commités dans GIT
6./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 Laravel
2./vendor/bin/pint --preset empty # Preset vide, il faudra configurer les éléments dans le fichier de configuration
3./vendor/bin/pint --preset symfony # Preset pour le style de code Symfony
4./vendor/bin/pint --preset psr12 # Preset PSR-12
5./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": false
6 }
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}

Sources

Ludovic Meurot

Développeur web, PHP Laravel, interessé par l'admin sys et du réseau.