SPIP
Article proposé
L’article « SCS1
(https://www.spip.net/ecrire/?exec=article&id_article=6677) » est proposé
à la publication depuis le jeudi 2 septembre 2021.
SCS1
SPIP Coding Standard 1
jeudi 2 septembre 2021 , par James
Sommaire
- Fichiers
- Lignes et indentation
- Fonctions, Classes et Namespaces
- Constantes, Variables et propriétés de classe
- Mots-clés réservés, Structures de contrôle et opérateurs
- Opérations sur les chaines de caractères
Les règles de codage s’appuient sur la recommandation PSR-12
(http://www.php-fig.org/psr/psr-12/) sans la respecter entièrement.
Ci-dessous, le détail :
Fichiers|Retour au sommaire
- La balise d’ouverture d’un fichier PHP DOIT être
<?php
.
L’ouverture<?
doit être proscrite. - L’encodage de cararctères des fichiers PHP DOIT être UTF-8
sans BOM. - Tous les fichiers PHP DOIVENT utiliser uniquement la fin de ligne
Unix LF (linefeed). - Tous les fichiers PHP DOIVENT se terminer par une ligne non vide,
terminée par un seul LF. - La balise de fermeture
?>
DOIT être omise des fichiers contenant
uniquement du PHP.
Lignes et indentation|Retour au sommaire
- Il NE DOIT PAS y avoir de limite stricte sur la longueur de la ligne.
- La limite souple sur la longueur de ligne DOIT être de 120
caractères. - Les lignes NE DEVRAIENT PAS dépasser 80 caractères ; les lignes plus
longues DEVRAIENT être divisées en plusieurs lignes suivantes de 80
caractères chacune au maximum. - Il NE DOIT PAS y avoir d’espace à la fin des lignes.
- Des lignes vierges PEUVENT être ajoutées pour améliorer la
lisibilité et pour indiquer les blocs de code associés, sauf là où cela
est explicitement interdit. - Il NE DOIT PAS y avoir plus d’une instruction par ligne.
- Contrairement à PSR-12, le code DOIT utiliser une tabulation pour
chaque niveau de retrait et NE DOIT PAS utiliser d’espaces pour le
retrait.
Fonctions, Classes et Namespaces[|Retour au
sommaire](#s-Fonctions-Classes-et-Namespaces)
-
Dans les versions 4.x et antérieures, SPIP ne suit pas de PSR
d’autoloading (ex : PSR-4 (PSR-4: Autoloader - PHP-FIG). En
conséquence, SCS1 n’impose aucun formalisme pour les namespaces et les
classes, y compris les Traits et les interfaces. -
Les fonctions DEVRAIENT être déclarées en snake_case
(https://fr.wikipedia.org/wiki/snake_case). -
L’accolade ouvrante DOIT être sur la même ligne que le nom de la
fonction, et DOIT avoir un espace avant et aucun espace après.class MaClasse { function une_methode ( ) { … } }
Constantes, Variables et propriétés de classe[|Retour au
sommaire](#s-Constantes-Variables-et-proprietes-de-classe)
-
Les constantes DOIVENT être déclarées en majuscules avec un tiret
bas séparateur et préfixées par un tiret bas.define (http://www.php.net/define) ( '_NOUVELLE_CONSTANTE' , true ) ;
-
Les variables et les arguments de fonctions DEVRAIENT être déclarées
en snake_case (https://fr.wikipedia.org/wiki/snake_case).function ma_super_fonction ( $un_argument , $autre_argument ) { … }
-
les propriétés de classe PEUVENT être déclarées en snake_case
(https://fr.wikipedia.org/wiki/snake_case). -
Les variables globales, dont l’usage est déconseillé, sont
référencée par$GLOBALS["xxx"]
et non par une déclarationglobal $xxx
, car cela permet d’être certain de la référence qu’on utilise
et de facilement faire la différence lors de la lecture du code.if ( isset (http://www.php.net/isset) ( $GLOBALS [ 'meta' ] [ 'adresse_site' ] ) ) { $adresse = $GLOBALS [ 'meta' ] [ 'adresse_site' ] ; }
Mots-clés réservés, Structures de contrôle et opérateurs[|Retour au
sommaire](#s-Mots-cles-reserves-Structures-de-controle-et-operateurs)
-
Tous les mots-clés et types réservés PHP 1
(PHP: List of Keywords - Manual)2
(PHP: List of other reserved words - Manual) DOIVENT
être en minuscules. -
Tous les nouveaux types et mots-clés ajoutés aux futures versions de
PHP DOIVENT être en minuscules. -
La forme courte des mots-clés de « type », quand ils sont présents,
DOIT être utilisée, c’est-à-dire bool au lieu deboolean
, int au
lieu d’integer
, etc. -
L’accolade ouvrante des structures de contrôle DOIT être sur la
même ligne que le nom de la fonction, et DOIT avoir un espace avant et
aucun espace après. -
Dans les expressions PHP, laisser un espace de part et d’autre des
opérateurs binaires (+, =, *, and, …).$hypothenuse = sqrt (http://www.php.net/sqrt) ( ( $a * $a ) + ( $b * $b ) ) ;
-
Les opérateurs unaires (!, …) doivent être collés au paramètre
auquel ils s’appliquent. -
la notation courte DOIT être appliquée sur les tableaux
$tableau = [ 'cle' => 'valeur' , ... ] ;
Opérations sur les chaines de caractères[|Retour au
sommaire](#s-Operations-sur-les-chaines-de-caracteres)
-
Utilisez les guillemets doubles uniquement quand cela est nécessaire.
Si vous n’avez pas de variable ($var) ou de caractère de contrôle (\n,
\r, \t…) à évaluer dans la chaîne, utilisez les guillemets simples.$chaine = "<a href= \" $url \" >Lien</a> \n " ; $chaine2 = 'Une simple phrase : ' . $autre_chose ;
— Envoyé par SPIP (https://www.spip.net/)