Carnet Wiki

PSR_SPIP

Version 14 — Juin 2019 JLuc

Voir aussi : Outils pour la conformité du php avec les PSR-12

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 la conformité du php avec les PSR-12

Jeu de règles pour SPIP
La version connue la plus aboutie est : https://gist.github.com/JLuc/1dbd8aa422f683efabc08138b34704a4

É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);
}