*WAP-OBZOR.RU -> Стили комментарии 1 страница"/> *WAP-OBZOR.RU -> Стили комментарии 1 страница"> *WAP-OBZOR.RU -> Стили комментарии 1 страница"> {% else-1 %}

Нет фото
• 26 янв 2013, 03:25

•••
Отступы
Используйте для отступа 4 пробела, а не табуляцию.
Отступы
Используйте для отступа 4 пробела, а не табуляцию.
Управляющие структуры
Используйте фигурные скобки в управляющих структурах даже тогда, когда это необязательно:
плохой стиль:
if (isset($name))
echo "Hello $name";
хороший стиль
if (isset($name)) {
echo "Hello $name";
}
Используйте K&R стиль фигурных скобок.
В управляющих структурах между ключевым словом и открывающей круглой скобкой должен находиться пробел, чтобы отличать их от вызова функций.
хороший стиль

<?php
if ((condition1) || (condition2)) {
    
action1;
} elseif ((
condition3) && (condition4)) {
    
action2;
} else {
    
defaultaction;
}
?>


Cинтаксис оператора switch:

<?php
switch (condition) {
case 
1:
    
action1;
    break;
case 
2:
    
action2;
    break;
default:
    
defaultaction;
    break;
}
?>


Вызовы функций
Вызовы функций должны быть написаны без отступов между именем функции, открывающей скобкой и первым параметром. Отступы в виде пробела должны присутствовать после каждой запятой в перечислении параметров. Пробелов также не должно быть между последним параметром, закрывающей скобкой и точкой с запятой:

<?php
$var 
foo($bar$baz$quux);
?>


Определения функций
Определения функций следуют такому cоглашению:

<?php
function fooFunction($arg1$arg2 '')
{
    if (
condition) {
        
statement;
    }
    return 
$val;
}
?>


Аргументы функций со значениями по умолчанию должны находиться в конце списка аргументов. Функции всегда должны возвращать значение, если это возможно в принципе. Чуть более подробный пример:

<?php
function connect(&$dsn$persistent false)
{
    if (
is_array($dsn)) {
        
$dsninfo = &$dsn;
    } else {
        
$dsninfo DB::parseDSN($dsn);
    }
    if (!
$dsninfo || !$dsninfo['phptype']) {
        return 
$this->raiseError();
    }
    return 
true;
}
?>


Комментарии
Комментарии внутри кода классов должны соответствовать синтаксису комментариев PHPDoc (http://www.phpdoc.org).
Дополнительные комментарии, кроме тех, что предусмотрены PHPDoc, только приветствуются. Основное правило в данном случае — каждая часть кода повышенной сложности должна быть прокомментирована до того, как вы забыли как она работает.
Подходят комментарии в стилях C (/* */) и C++ (//). Использование комментариев в стиле Perl/shell (#) не рекомендуется.
Именования
Константы и глобальные переменные
Имена констант и глобальных переменных всегда должны быть в верхнем регистре с подчеркиваниями для разделения слов. В качестве префикса в именах констант должно использоваться имя пакета/класса, в котором они используются.
$CACHE_PATH
Встроенные константы TRUE, FALSE, NULL
Встроенные константы PHP TRUE, FALSE and NULL должны быть написаны в нижнем регистре.
true
Временные переменные и «плавающие функции»
Имена временных переменных и «плавающих функций» всегда должны быть в нижнем регистре с подчеркиваниями для разделения слов. Функции также должны иметь префикс в виде имени пакета для того, чтобы избежать проблем с аналогичными функциями из других пакетов.
$num_elements
RPC_serialize_data()
Имена методов и свойств
Методы и свойства должны использовать «венгерскую нотацию». Первая буква в имени должна быть в нижнем регистре, каждая первая буква «слова» в имени — в верхнем. Знак подчеркивания запрещен.
getData()
$this->currentStatus
Приватные методы и свойства должны быть префиксированы знаком подчеркивания
_sort()
_initTree()
$this->_status
Имена классов
Первая буква имени класса должна быть в верхнем регистре, символы подчеркивания должны использоваться только для имитации вложенных пространств имен, многословные имена классов должны представлять собой одно слово, а первые буквы всех входящих в имя слов должны вводиться в
верхнем регистре (то есть с использованием венгерской нотации).
class XML_RSS {}
class Text_PrettyPrinter {}
Рекомендации по написанию чистого кода
Не использовать оператор echo для вывода html-тэгов, а использовать «встраивание» html-кода:
плохой стиль:

<?php
echo "<table>";
echo 
"<tr><td>Name</td><td>Position</td></tr>";
foreach (
$employees as $employee) {
    echo 
"<tr><td>$employee[name]</td><td>$employee[position]</td></tr>";
}
echo 
"</table>";
?>


хороший стиль:
<table>
<tr><td>Name</td><td>Position</td></tr>

<?php foreach ($employees as $employee) { ?>


<tr><td>

<?php echo $employee['name']; ?>


</td><td>

<?php echo $employee['position']; ?>


</td></tr>

<?php ?>


</table>
Не использовать устаревшую конструкцию

<?= ?>


Использование пустого пространства для усиления логической структуры кода:
плохой стиль:
$lt = localtime();
$name = $_GET['name'];
$email = $_GET['email'];
$month = $lt['tm_mon'] + 1;
$year = $lt['tm_year'] + 1900;
$day = $lt['tm_day'];
$address = $_GET['address'];
хороший стиль:
$name = $_GET['name'];
$email = $_GET['email'];
$address = $_GET['address'];
$lt = localtime();
$day = $lt['tm_day'];
$month = $lt['tm_mon'] + 1;
$year = $lt['tm_year'] + 1900;
Использование пустого пространства для усиления логической структуры SQL-запросов:
плохой стиль:
$query = "SELECT FirstName, LastName FROM employees, departament WHERE employees.dept_id = departament.dept_id AND departament.Name = 'Engineering'";
хороший стиль:
$query = "SELECT firstname,
lastname
FROM employees e,
departament d
WHERE e.dept_id = d.dept_id
AND d.name = 'Engineering'";
Всегда используйте include_once() и require_once() вместо include() и require()
Всегда используйте

<?php ?>


вместо

<? ?>


для выделения PHP-кода
Когда строка является литеральной (не содержит подстановок переменных), для ее обрамления должны использоваться апострофы или «одинарные кавычки»:
$a = 'Example String';
Функции в глобальной области видимости («плавающие функции») допустимы, но не приветствуются. Рекоммендуется обрамлять такие функции в статические классы.
Комментариев нет!