Aller au contenu principal

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


Quel est le rôle de PHP CS Fixer ?


Comment installe-t-on PHP CS Fixer ?


Quelle option permet de voir les changements sans les appliquer ?


Quel fichier contient la configuration de PHP CS Fixer ?


Quel standard de codage PHP CS Fixer peut-il appliquer automatiquement ?



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.


Bonne pratique - Intégrer PHP CS Fixer dans le workflow Git

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