Conventions générales :

  • Utilisez des tabulations pour toute l'indentation du code. Configurez votre éditeur pour stocker les tabulations en tant que caractères de tabulation, et non des espaces. N'utilisez pas une multitude d'espaces pour l'indentation.
  • Les nouveaux fichiers dans SVN / Git doivent utiliser l'encodage UTF-8 (sans BOM).
  • Fins de ligne de style Unix : LF
  • Les noms de fichiers inclus dans toutes les URL directement accessibles doivent être en minuscules ; si un nom est composé de plusieurs mots, reliez-les avec des traits de soulignement.
  • Largeur de ligne : 120 caractères

Normes de code

Exemples

<?php // Doit commencer par <?php
// xxx@example.com Chaque fichier doit spécifier l'e-mail du propriétaire

require_once('conf/config.inc.php'); // require_once doit avoir des parenthèses, et il ne doit pas y avoir d'espace avant la parenthèse ouvrante

class CodingStandard { // Ajoutez un espace avant les accolades. Les noms de classe commencent par une lettre majuscule ; plusieurs mots commencent chacun par une lettre majuscule
    private $attribute; // Les commentaires de propriété s'écrivent directement après la propriété

    // Format de tableau
    public $color = array(
        '1' => 'red', // Indenter une fois avec une tabulation
        '2' => 'blue',
        '3' => 'yellow',
        '4' => array(
            '1' => 'green', // Après alignement avec les colonnes du tableau ci-dessus, indenter une fois de plus avec une tabulation
            '2' => 'gray'
        ) // La fin du tableau s'aligne avec le tout début de la variable déclarée
    ); // La fin du tableau s'aligne avec l'endroit où la variable de tableau est déclarée

    public $number = array(1, 2, 3, 4); // Pour les tableaux simples, ils peuvent être placés sur une seule ligne

    // Les commentaires de méthode utilisent le double slash et doivent être rédigés sur une seule ligne si possible
    function foo($i, $list) { // 1. Il n'y a pas d'espace avant la parenthèse ( après le nom de la fonction 2. Pour plusieurs paramètres, s'il y a une virgule, il doit y avoir un espace après elle
        for ($j = 0; $j < $i; $j++) { // Ajouter un espace après for
            echo "This is no.{$j}, content is {$list[$j]}"; // Les instructions echo n'utilisent pas de parenthèses.

            // Le choix d'utiliser des guillemets simples ou doubles dans les instructions echo dépend de la situation réelle
            echo '&lttable border="0" cellspacing="5" cellpadding="5"&gt';
        }
        if ($i > 0) { // 1. Ajouter un espace après if 2. Les opérateurs doivent avoir des espaces des deux côtés
            return $i % 2; // Les opérateurs ont des espaces des deux côtés
        } else { // else doit aussi avoir des espaces des deux côtés
            return null;
        }

        if ($j == $i) return 1; // Si un if ne contient qu'une seule instruction courte, il est recommandé de l'écrire sur une seule ligne ; si vous le répartissez sur plusieurs lignes, il est recommandé d'ajouter des parenthèses.

        $count = count($_SERVER); // Écrire l'affectation à l'extérieur
        if ($count > 10) echo 'pass'; // Dans if, effectuer uniquement un jugement booléen ; ne pas écrire d'instructions d'affectation
    }

    public static function testFunction() { // Le nommage des méthodes statiques et non statiques suit tous deux le principe camelCase
    }
}

$s = new CodingStandard(); // Lors de la création d'un objet avec new, des parenthèses doivent être ajoutées
$s->foo(10, $s->color); // Il ne doit y avoir aucun espace à l'intérieur des parenthèses après une fonction. Si une fonction a plus d'un paramètre, il doit y avoir un espace après chaque virgule
CodingStandard::testFunction(); // Les appels de code statiques n'ont qu'une seule manière : l'appel par double deux-points

// Les fichiers PHP doivent se terminer par ?>, et assurez-vous qu'il n'y a pas d'espaces ni de lignes vides après.
?>