Общие соглашения:
- Используйте табуляцию для всех отступов в коде. Настройте редактор так, чтобы табуляции сохранялись как символы табуляции, а не пробелы. Не используйте множество пробелов для отступов.
- Новые файлы в 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 '<table border="0" cellspacing="5" cellpadding="5">';
}
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-файлы должны заканчиваться на ?>, и убедитесь, что после него нет пробелов или пустых строк.
?>
// 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 '<table border="0" cellspacing="5" cellpadding="5">';
}
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-файлы должны заканчиваться на ?>, и убедитесь, что после него нет пробелов или пустых строк.
?>