Loading repository data…
Loading repository data…
Mathysdvg / repository
Bienvenue dans cette formation qui vous apprendra le fonctionnement de PHP CS Fixer dans l'IDE PhpStorm.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Ce document explique à quoi sert PHP CS Fixer, comment l’installer, comment l’intégrer dans PhpStorm, et propose une démonstration pratique à intégrer dans votre projet.
PHP CS Fixer est un outil qui permet de :
Rappel rapide : Qu’est‑ce que PSR‑12 ?
PSR‑12 est la norme officielle de style de code PHP. Elle définit comment organiser, indenter et écrire ton code pour qu’il soit propre, lisible et cohérent entre tous les projets.
Elle impose notamment :
l’organisation des imports (use) et du namespace,
les accolades placées sur la ligne suivante,
des espaces cohérents autour des opérateurs et des mots‑clés,
un style moderne compatible avec PHP 7/8.
PHP‑CS‑Fixer applique automatiquement cette norme lorsque tu utilises la règle @PSR12.
Dans votre projet dans le terminal :
composer require friendsofphp/php-cs-fixer --dev
vendor/bin/php-cs-fixer -V
Vous devriez voir la version afficher.
.php-cs-fixer.phpÀ la racine de votre projet, séléctionner ce fichier :
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
->exclude('vendor');
return (new PhpCsFixer\Config())
->setRules([
'@PSR12' => true,
'array_syntax' => ['syntax' => 'short'],
'no_unused_imports' => true,
'binary_operator_spaces' => ['default' => 'align'],
])
->setFinder($finder);
Ce fichier définit :
mauvais_code.php :<?php
// ❌ Namespace et "use" ne doivent jamais être sur la même ligne.
namespace RoyaumeChampi; use DateTime;
class MarioAdventure {
// ❌ Mauvaise syntaxe d'array + espaces incohérents.
public $pieces = array(1 ,2 ,3 );
// ❌ Espacement incorrect autour du "="
private $vie=3;
function __construct( ){
// ❌ "Pieces" avec une majuscule : propriété incorrecte.
$this->Pieces[] =4;
// ❌ Propriété "nom" inexistante dans la classe.
$this->nom = 'Mario';
}
public function sauter( $hauteur , $force ){
// ❌ Pas d'espace après echo.
// ❌ L'opération $hauteur * $force est ambiguë sans parenthèses.
echo"Mario saute de ".$hauteur*$force." metres !"; }
public function prendreChampi ( $type){
// ❌ Espaces et accolades mal placées.
// ❌ Comparaison avec == au lieu de ===.
if($type=="rouge"){return"Mario gagne 1 vie";} else{return"Mario devient plus grand";} }
public function entrerDansTuyau( $destination){
// ❌ Même problème : accolades et espaces mal foutus.
if($destination=="castle"){
return"Bienvenue dans le chateau de Bowser !"; }else{ return "Mario arrive dans ".$destination; }
}
}
// ❌ Instanciation sans parenthèses (mauvaise pratique).
$m = new MarioAdventure;
// ❌ Appels tout sur une seule ligne → illisible.
$m->sauter(2 ,5);
// ❌ Paramètre mal espacé + mauvaise indentation.
$r = $m->prendreChampi("rouge");
// ❌ Echo collé au texte.
echo"Résultat : ".$r;
?>
vendor/bin/php-cs-fixer fix
<?php
namespace RoyaumeChampi;
use DateTime;
class MarioAdventure
{
public $pieces = [1 ,2 ,3 ];
private $vie = 3;
public function __construct()
{
$this->Pieces[] = 4;
$this->nom = 'Mario';
}
public function sauter($hauteur, $force)
{
echo'Mario saute de '.$hauteur * $force.' metres !';
}
public function prendreChampi($type)
{
if ($type == 'rouge') {
return'Mario gagne 1 vie';
} else {
return'Mario devient plus grand';
}
}
public function entrerDansTuyau($destination)
{
if ($destination == 'castle') {
return'Bienvenue dans le chateau de Bowser !';
} else {
return 'Mario arrive dans '.$destination;
}
}
}
$m = new MarioAdventure();
$m->sauter(2, 5);
$r = $m->prendreChampi('rouge');
echo'Résultat : '.$r;
Répondez aux questions suivantes :
a) Améliorer les performances
b) Corriger automatiquement le style du code
c) Trouver les failles
d) Compiler le code
a) @Symfony
b) @PSR12
c) @Doctrine
d) @PER
vendor/bin/php-cs-fixer fix --dry-run --diff
a) Corrige les fichiers
b) Affiche les corrections possibles sans les appliquer
c) Supprime les fichiers incorrects
d) Ne vérifie que les imports
.php-cs-fixer.php ?a) Dans vendor/
b) Dans .git/
c) À la racine du projet
d) N'importe où
no_unused_imports ?a) Empêcher les exceptions
b) Supprimer les imports non utilisés
c) Convertir array() en []
d) Renommer les classes
Analysez ce code :
<?php
namespace App; use DateTime; class Test {
public function run( $a,$b ){
if($a>$b){
return $a;}else{
return $b;}}
}
Avec ce TP, vous savez maintenant :
Votre projet PHP sera désormais propre, moderne et cohérent !