Carnet Wiki

Jeux de règles PSR_SPIP

Voir aussi :
-  Outils pour tester la conformité d’un code php avec les PSR SPIP
-  https://mlocati.github.io/php-cs-fixer-configurator/ : menu des règles

Les recommandations pour le code source de SPIP s’appuient sur PSR2 avec des modifications (voir doc SPIP.net).

On est donc plus proche de PSR2R=PSR2 rectified mais des jeux de règles plus spécifiques à SPIP ont été élaborés.

Mise en oeuvre

Doc : Outils pour tester la conformité d’un code php avec les PSR SPIP

Jeu de règles pour SPIP

-  La version connue la plus aboutie est : https://gist.github.com/JLuc/1dbd8aa422f683efabc08138b34704a4

-  Eric (part de PSR2 et) enlève les braces et indentention_type

Évolutions envisagées


-  améliorer le jeu de règles si nécessaire
-  améliorer le fixer (voir plus loin “correction inline”)
-  le mettre en hook post commit d’une forge
* avec mantis sur github
* avec drone sur le gitea de git.spip.net

Corrections

-  les différentes sortes de tabulations du codestyle de cerdic font toutes 2 espaces de large
-  > 4 c’est mieux

Règles à ajouter ?

Correction d’instruction inline sur même ligne

La règle Generic.ControlStructures.InlineControlStructure.NotAllowed du fixer ajoute des accolades autour des instructions inline, mais dans certains cas, il laisse ces instructions sur la même ligne et c’est moche.

Par exemple typiquement il corrige

if ($test) doit();

en

if ($test) { 
doit();
}

Il devrait fournir :

if ($test) { 
    doit();
}

elseif

Selon PSR2SPIP Les elseif doivent être sur la ligne de l’accolade fermante du if précédent

if ($untest) {
        $index = $donnees['index'];
        include_spip('about_truc')
        $truc = get_truc($index);
} elseif ($autrecas) {
        $index = $donnees['index'];
        include_spip('about_truc')
        $truc = get_truc($index);
}

mais il semblerait agréable de reporter le elseif à la ligne suivant l’accolade fermante

if ($untest) {
        $index = $donnees['index'];
        include_spip('about_truc')
        $truc = get_truc($index);
}
elseif ($autrecas) {
        $index = $donnees['index'];
        include_spip('about_truc')
        $truc = get_truc($index);
}
JLuc - Mise à jour :8 June 2019 at 18:19