Version 13 — Mai 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.
Doc : Outils pour la conformité du php avec les PSR-12
Jeu de règles pour SPIP
La version connue la plus aboutie est : com/JLuc/1dbd8aa422f683efabc08138b34704a4" class="spip_url spip_out auto" rel="nofollow external">https://gist.github.com/JLuc/1dbd8aa422f683efabc08138b34704a4 com/marcimat/0e83a42334ecdb0b9e31d4dd7cb97963
- 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
- les différentes sortes de tabulations du codestyle de cerdic font toutes 2 espaces de large
- > 4 c’est mieux
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 plutôt fournir :
if ($test) {
doit();
}
(confirmé par mm )
C’est la règle < code>Squiz . ControlStructures.ControlSignature.NewlineAfterOpenBrace qui est sensée faire faire ça bien et qui, pourtant, fait bien partie de du jeu de régle spip.
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);
}