Carnet Wiki

PSR_SPIP

Version 10 — May 2019 JLuc

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-12

Jeu de règles pour SPIP
La version connue la plus aboutie est : https://gist.github.com/marcimat/0e83a42334ecdb0b9e31d4dd7cb97963

Évolutions envisagées


-  améliorer le jeu de règles si nécessaire
-  améliorer le fixer
-  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 ? ajouter

}

Correction d’instruction inline sur même ligne

Ce sont des avis personnels.

Le fixer laisse les instructions sur la ligne Instruction après avoir ajouté une accolade ouvrante , ce qui produit un code moche . ouvrante

Le fixer laisse les instructions après une accolade ouvrante et génère parfois corrige un code formant cela
Par exemple typiquement il corrige

if ($test) doit();

en

if ($test) { doit();
}

Il devrait plutôt fournir :

if ($test) { 
    doit();
}

(confirmé par mm)

elseif

Selon PSR2SPIP Les elseif doivent être sont forcément 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 serait 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);
}