Общие соглашения:

  • Используйте табуляцию для всех отступов в коде. Настройте редактор так, чтобы табуляции сохранялись как символы табуляции, а не пробелы. Не используйте множество пробелов для отступов.
  • Новые файлы в SVN / Git должны использовать кодировку UTF-8 (без BOM).
  • Окончания строк в стиле Unix: LF
  • Имена файлов, включаемые во все URL-адреса, доступные напрямую, должны быть в нижнем регистре; если имя состоит из нескольких слов, соединяйте их подчёркиваниями.
  • Ширина строки: 120 символов

Стандарты кода

Примеры

<?php // Должен начинаться с <?php
// xxx@example.com Каждый файл должен указывать email владельца

require_once('conf/config.inc.php'); // require_once должен иметь круглые скобки, и перед открывающей скобкой не должно быть пробела

class CodingStandard { // Добавьте пробел перед фигурными скобками. Имена классов начинаются с заглавной буквы; в именах из нескольких слов каждое слово начинается с заглавной буквы
    private $attribute; // Комментарии к свойствам пишутся непосредственно после свойства

    // Формат массива
    public $color = array(
        '1' => 'red', // Отступ один раз с помощью табуляции
        '2' => 'blue',
        '3' => 'yellow',
        '4' => array(
            '1' => 'green', // После выравнивания по столбцам массива выше сделайте ещё один отступ с помощью табуляции
            '2' => 'gray'
        ) // Конец массива выравнивается по самому началу объявленной переменной
    ); // Конец массива выравнивается по месту объявления переменной массива

    public $number = array(1, 2, 3, 4); // Для простых массивов их можно разместить на одной строке

    // Комментарии к методам используют двойные слеши и по возможности должны быть завершены на одной строке
    function foo($i, $list) { // 1. После имени функции перед ( пробел не ставится 2. При нескольких параметрах, если есть запятая, после неё должен быть пробел
        for ($j = 0; $j < $i; $j++) { // Добавьте пробел после for
            echo "Это номер.{$j}, содержимое — {$list[$j]}"; // в операторе echo не используются круглые скобки.

            // Использование одинарных или двойных кавычек в операторах echo зависит от конкретной ситуации
            echo '&lttable border="0" cellspacing="5" cellpadding="5"&gt';
        }
        if ($i > 0) { // 1. После if ставится пробел. 2. Операторы должны быть окружены пробелами с обеих сторон.
            return $i % 2; // Операторы окружены пробелами с обеих сторон
        } else { // вокруг else также должны быть пробелы с обеих сторон
            return null;
        }

        if ($j == $i) return 1; // Если if содержит только один короткий оператор, рекомендуется записывать его в одну строку; если разбиваете на несколько строк, рекомендуется добавлять скобки.

        $count = count($_SERVER); // Присваивание записывайте снаружи
        if ($count > 10) echo 'pass'; // В if выполняйте только логическую проверку; не записывайте операторы присваивания
    }

    public static function testFunction() { // Именование статических и нестатических методов следует принципу camelCase
    }
}

$s = new CodingStandard(); // При создании объекта с помощью new необходимо добавлять круглые скобки
$s->foo(10, $s->color); // После функции внутри круглых скобок не должно быть пробела. Если у функции больше одного параметра, после каждой запятой должен быть пробел
CodingStandard::testFunction(); // У статических вызовов кода есть только один способ: вызов через двойное двоеточие

// PHP-файлы должны заканчиваться на ?>, и убедитесь, что после него нет пробелов или пустых строк.
?>