PHP CS Fixer
Formater et normaliser automatiquement votre code PHP selon les standards PSR
Notions théoriques
PHP CS Fixer (PHP Coding Standards Fixer) est un outil qui reformate automatiquement votre code PHP pour qu'il respecte les standards de codage définis. Il peut corriger des centaines de règles de style en une seule commande.
Pourquoi utiliser PHP CS Fixer ?
- Garantir un style de code uniforme dans toute l'équipe
- Éviter les débats sur la mise en forme lors des revues de code
- Respecter automatiquement les standards PHP (PSR-1, PSR-2, PSR-12)
- Intégrable dans les pipelines CI/CD pour bloquer le code mal formaté
Installation
PHP CS Fixer s'installe via Composer, de préférence en dépendance de développement :
composer require --dev friendsofphp/php-cs-fixer
Fichier de configuration .php-cs-fixer.php
La configuration est définie dans un fichier .php-cs-fixer.php à la racine du projet :
<?php
$finder = (new PhpCsFixer\Finder())
->in(__DIR__ . '/src')
->in(__DIR__ . '/tests');
return (new PhpCsFixer\Config())
->setRules([
'@PSR12' => true,
'array_syntax' => ['syntax' => 'short'],
'ordered_imports' => true,
'no_unused_imports' => true,
])
->setFinder($finder);
Utilisation
Pour analyser et corriger automatiquement le code :
vendor/bin/php-cs-fixer fix
Pour voir les changements sans les appliquer (mode --dry-run) :
vendor/bin/php-cs-fixer fix --dry-run --diff
Exemple de mise en application
Supposons ce code mal formaté dans notre jeu :
<?php
namespace App\Entity;
class Character{
private string $name;
public function getName():string{return $this->name;}
public function setName( string $name ) : self{$this->name=$name;return $this;}
}
Après vendor/bin/php-cs-fixer fix, le fichier devient :
<?php
namespace App\Entity;
class Character
{
private string $name;
public function getName(): string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
}
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Configurez PHP CS Fixer pour votre projet Symfony
Étape 1 : Créez le fichier .php-cs-fixer.php en configurant le finder pour analyser le dossier src/.
Étape 2 : Lancez PHP CS Fixer en mode aperçu (sans modifier les fichiers) pour voir les changements à apporter.
Ajoutez un script dans composer.json pour faciliter l'utilisation :
"scripts": {
"cs-fix": "php-cs-fixer fix",
"cs-check": "php-cs-fixer fix --dry-run --diff"
}
Lancez composer cs-check avant chaque commit, ou configurez un hook Git pre-commit
pour bloquer automatiquement les commits avec du code mal formaté.
Une solution
Vous devez être connecté pour voir le contenu.