Стиль кодирования

> Разработчикам > Стиль кодирования

Это небольшое руководство частично основано на руководстве стиля кодирования Zend Framework.

Разграничение кода PHP

Код PHP должен всегда разграничиваться полной формой, стандартными тегами PHP:

<?php

?>

 

Короткие теги не допустимы. Для файлов, содержащих только код PHP, закрывающий тег должен быть всегда опущен (см. Общие стандарты).

Переменные

Переменные должны следовать венгерской нотации (https://ru.wikipedia.org/wiki/Венгерская_нотация), что означает они должны начинаться с алфавита, указывающих на тип переменной, например i на целое, для массивов, o для объектов, s для строк Кроме того, каждый первый символ слова должен быть в верхнем регистре.

$iThisIsAnInteger = 42;
$sSomeText = 'This is some text';
$aVariable = array(1, 2, 3, 4 , 5);

Примечание: имена столбцов SQL должны придерживаться аналогичным обозначениям, но первый символ должен следовать символ подчеркивания. Слова разделяются символом подчеркивания, все в нижнем регистре. Если столбец является первичным ключом, ему должен предшествовать «pk_«, если это внешний ключ на «fk_«

i_integer_variable
s_some_text
dt_registration_date
pk_i_id // this IS a PRIMARY KEY
fk_i_category_id // this IS a FOREIGN KEY

Классы

Объявление класса

Фигурная скобка должна всегда писаться в строке под именем класса.
У каждого класса должен быть блок документации, который соответствует стандарту PHPDocumentor. Ниже приведен пример приемлемого объявления класса:

/**
* Documentation Block Here
*/
class Foo
{
    /**
     * Documentation Block Here
     */
    public function bar()
    {
        // all contents of function
        // must be indented four spaces
    }
}

Управляющие операторы

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b or a меньше, чем b:

 

<?php
if ($a $b) {
echo 
"a больше, чем b";
} elseif (
$a == $b) {
echo 
"a равен b";
} else {
echo 
"a меньше, чем b";
}
?>

 

Может быть несколько elseif в одном if выражении. Первое же выражение elseif (если будет хоть одно) равное TRUE будет выполнено. В PHP вы также можете написать ‘else if’ (в два слова), и тогда поведение будет идентичным ‘elseif’ (в одно слово). Синтаксически значение немного отличается (если Вы знакомы с языком С, это тоже самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

 

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны FALSE, а текущий elseif равен TRUE.

 

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются двоеточие для определения условий if/elseif, Вы не должны разделять else if в два слова, иначе это вызовет фатальную ошибку в PHP.

 

Оператор switch

(PHP 4, PHP 5)

 

Оператор switch подобен серии операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений, и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

 

Замечание: Обратите внимание, что в отличие от некоторых других языков, оператор continue применяется в конструкциях switch и действует подобно оператору break. Если у вас конструкция switch находится внутри цикла, и вам необходимо перейти к следующей итерации цикла, используйте continue 2.

 

Замечание:

Заметьте, что конструкция swich/case использует неточные сравнения (==).

 

Следующие два примера иллюстрируют два различных способа написать то же самое. Один использует серию операторов if и elseif, а другой — оператор switch:

 

Пример #1 Оператор switch

 

<?php
if ($i == 0) {
echo 
"i равно 0";
} elseif (
$i == 1) {
echo 
"i равно 1";
} elseif (
$i == 2) {
echo 
"i равно 2";
}

switch ($i) {
case 
0:
echo 
"i равно 0";
break;
case 
1:
echo 
"i равно 1";
break;
case 
2:
echo 
"i равно 2";
break;
}
?>

Формат документации
Все блоки документации docblocks») должны быть совместимы с форматом PhpDocumentor. Описывая формат PhpDocumentor выходит за рамки этого документа. Для получения дополнительной информации посетите: »http://phpdoc.org/
Это небольшое руководство частично основано на руководстве стиля кодирования Zend Framework

administrator написал 36 статья