|
|
@@ -79,7 +79,7 @@
|
|
|
<para>
|
|
|
<emphasis>ВАЖНО:</emphasis> Включение бинарных файлов, как разрешает
|
|
|
<methodname>__HALT_COMPILER()</methodname>, запрещено из любого
|
|
|
- <acronym>PHP</acronym>-файла Zend framework'а или файлов производных от него.
|
|
|
+ <acronym>PHP</acronym>-файла Zend Framework'а или файлов производных от него.
|
|
|
Эта возможность разрешена для использования только в специальных инсталляционных
|
|
|
скриптах.
|
|
|
</para>
|
|
|
@@ -110,7 +110,7 @@
|
|
|
<para>
|
|
|
Переводы строк должны быть как принято для текстовых файлов в
|
|
|
Unix-системах. Строки должны заканчиваться только символом
|
|
|
- перевода на новую строку (<acronym>LF</acronym>). Символ перевода на новую строку
|
|
|
+ перевода на новую строку (LF). Символ перевода на новую строку
|
|
|
в десятичном виде представляется как число 10, или как 0x0A в
|
|
|
шестнадцатеричном.
|
|
|
</para>
|
|
|
@@ -198,9 +198,9 @@
|
|
|
Планируя переход к Zend Framework 2.0 и использование <acronym>PHP</acronym>
|
|
|
5.3, мы готовимся использовать нэймспэйсы. Простейший способ автоматизировать
|
|
|
переход к нэймспэйсам - это просто преобразовать нижнее подчеркивание в
|
|
|
- разделитель нэймспэйса, но в случае старой схемы имнования это сделает
|
|
|
+ разделитель нэймспэйса, но в случае старой схемы именования это сделает
|
|
|
итоговым именем классов просто "Abstract" или "Interface", которые являются
|
|
|
- зарезервироваными ключевыми словами в <acronym>PHP</acronym>. Если же мы добавим
|
|
|
+ зарезервированными ключевыми словами в <acronym>PHP</acronym>. Если же мы добавим
|
|
|
имя (суб)компонента к имени класса, то сможем избежать этих проблем.
|
|
|
</para>
|
|
|
|
|
|
@@ -235,7 +235,7 @@ abstract class RequestAbstract
|
|
|
|
|
|
<para>
|
|
|
Мы сохраняем семантику и разделением нэймспэйсами, в тоже время мы избегаем
|
|
|
- проблем с ключевыми словами. Так же, так лучше описывается асбстрактный класс.
|
|
|
+ проблем с ключевыми словами. Так же, так лучше описывается абстрактный класс.
|
|
|
</para>
|
|
|
</note>
|
|
|
</sect2>
|
|
|
@@ -308,7 +308,7 @@ Zend/View/Helper/FormRadio.php
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Имена функций должны всегда начинатся с буквы в нижнем регистре.
|
|
|
+ Имена функций должны всегда начинаться с буквы в нижнем регистре.
|
|
|
Когда имя функции состоит из более чем одного слова, первая
|
|
|
буква каждого нового слова должна быть заглавной. Это обычно
|
|
|
называется "верблюжьей(camelCase)" нотацией.
|
|
|
@@ -341,7 +341,7 @@ widgetFactory()
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Для методов, объявленных с помощью префиксов области видимости "private" или
|
|
|
+ Для методов, объявленных с помощью префиксов области видимости "private" или
|
|
|
"protected", первый символ имени должен быть нижним подчеркиванием. Это единственное
|
|
|
допустимое применение нижнего подчеркивания в имени метода. Методы объявленные как
|
|
|
"public" никогда не должны иметь нижнего подчеркивания в имени.
|
|
|
@@ -374,17 +374,15 @@ widgetFactory()
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Как и имена функций (<link
|
|
|
- linkend="coding-standard.naming-conventions.functions-and-methods">смотри секцию
|
|
|
- выше</link>) имена переменных должны начинаться с буквы в нижнем регистре и
|
|
|
- следовать "верблюжьей" нотации.
|
|
|
+ Как и имена функций (смотри секцию 3.3), имена переменных должны начинаться с буквы
|
|
|
+ в нижнем регистре и следовать "верблюжьей" нотации.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
Многословность приветствуется. Имена переменных должны быть
|
|
|
настолько говорящими, насколько это практично. Краткие имена
|
|
|
- переменных, такие как "$i" и "$n" не приветствуются нигде,
|
|
|
- кроме как в контексте маленьких циклов. Если цикл содержит
|
|
|
+ переменных, такие как "<varname>$i</varname>" и "<varname>$n</varname>" не
|
|
|
+ приветствуются нигде, кроме как в контексте маленьких циклов. Если цикл содержит
|
|
|
более 20 строк кода, то переменные для индексов должны иметь
|
|
|
более говорящие имена.
|
|
|
</para>
|
|
|
@@ -404,7 +402,7 @@ widgetFactory()
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Например, <constant>EMBED_SUPPRESS_EMBED_EXCEPTION</constant> разрешени, а
|
|
|
+ Например, <constant>EMBED_SUPPRESS_EMBED_EXCEPTION</constant> разрешены, а
|
|
|
<constant>EMBED_SUPPRESSEMBEDEXCEPTION</constant> - нет.
|
|
|
</para>
|
|
|
|
|
|
@@ -424,7 +422,7 @@ widgetFactory()
|
|
|
<title>Обрамление PHP-кода</title>
|
|
|
|
|
|
<para>
|
|
|
- <acronym>PHP</acronym>-код должен всегда обрамлятся полными
|
|
|
+ <acronym>PHP</acronym>-код должен всегда обрамляться полными
|
|
|
<acronym>PHP</acronym>-тегами:
|
|
|
</para>
|
|
|
|
|
|
@@ -464,7 +462,7 @@ $a = 'Example String';
|
|
|
<para>
|
|
|
Когда строка литералов сама содержит апострофы, разрешается
|
|
|
для обрамления строки использовать "двойные кавычки". Это
|
|
|
- особенно актуально для <acronym>SQL</acronym>-запросов:
|
|
|
+ особенно актуально для <constant>SQL</constant>-запросов:
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -504,7 +502,7 @@ $greeting = "Hello ${name}, welcome back!";
|
|
|
|
|
|
<para>
|
|
|
Строки должны объединятся с помощью оператора ".". Пробел
|
|
|
- должен всегда добавлятся до и после оператора "." для
|
|
|
+ должен всегда добавляться до и после оператора "." для
|
|
|
улучшения читабельности:
|
|
|
</para>
|
|
|
|
|
|
@@ -543,7 +541,7 @@ $sql = "SELECT `id`, `name` FROM `people` "
|
|
|
|
|
|
<para>
|
|
|
Когда определяется индексированный массив с помощью
|
|
|
- конструкции <type>array</type>, завершающий пробел должен
|
|
|
+ конструкции <type>Array</type>, завершающий пробел должен
|
|
|
быть добавлен после каждой запятой для улучшения
|
|
|
читабельности:
|
|
|
</para>
|
|
|
@@ -679,6 +677,17 @@ class SampleClass
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
+ Классы, расширяющие другие классы или реализующие интерфейсы, должны объявлять
|
|
|
+ свои зависимости на той же строке, если возможно.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+class SampleClass extends FooAbstract implements BarInterface
|
|
|
+{
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
Если в результате такого объявления, длина строки превышает <link
|
|
|
linkend="coding-standard.php-file-formatting.max-line-length">максимальную
|
|
|
длину строки</link>, сделайте перенос перед ключевыми словами "extends" и/или
|
|
|
@@ -694,7 +703,7 @@ class SampleClass
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Если класс реализует несколько интерфесов и объявление превышает максимальную
|
|
|
+ Если класс реализует несколько интерфейсов и объявление превышает максимальную
|
|
|
длину строки - сделайте перенос после запятой, разделяющей интерфейсы, и
|
|
|
выровняйте их имена пробелами:
|
|
|
</para>
|
|
|
@@ -725,10 +734,9 @@ class SampleClass
|
|
|
Ключевое слово <emphasis>var</emphasis> не разрешено. Члены класса
|
|
|
должны всегда определять их область видимости, используя
|
|
|
ключевое слово <property>private</property>, <property>protected</property>
|
|
|
- или <property>public</property>. Доступ к переменным-членам
|
|
|
- класса напрямую используя префикс <property>public</property>
|
|
|
- разрешено, но не приветствуется в пользу методов
|
|
|
- доступа (set/get).
|
|
|
+ или <property>public</property>. К публичным переменным-членам
|
|
|
+ класса доступ напрямую разрешен, но не приветствуется в пользу методов
|
|
|
+ доступа (set & get).
|
|
|
</para>
|
|
|
</sect3>
|
|
|
</sect2>
|
|
|
@@ -809,10 +817,11 @@ class Foo
|
|
|
}
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>
|
|
|
- <emphasis>ЗАМЕЧАНИЕ:</emphasis> Передача по ссылке допустима только в
|
|
|
- определениях функций:
|
|
|
- </para>
|
|
|
+ <note>
|
|
|
+ <para>
|
|
|
+ Передача по ссылке допустима только в определениях функций:
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
/**
|
|
|
@@ -943,7 +952,7 @@ if ($a != 2) {
|
|
|
linkend="coding-standard.php-file-formatting.max-line-length">максимальную
|
|
|
длину строки</link> и имеет несколько условий, вы можете разбить его на
|
|
|
несколько строк. В таком случае, делайте перенос до логического оператора и
|
|
|
- выравнивайте пробелами до первого символа условного выражения. Закрывающая
|
|
|
+ выравнивайте пробелами до первого символа условного выражения. Закрывающая
|
|
|
скобка должна быть на новой строке, с уровнем отступа как у управляющей
|
|
|
структуры. На той же строке, через пробел, должна находиться открывающая
|
|
|
фигурная скобка.
|
|
|
@@ -1041,24 +1050,15 @@ switch ($numPeople) {
|
|
|
|
|
|
<note>
|
|
|
<para>
|
|
|
- <emphasis>Note</emphasis>: It is sometimes useful to write a
|
|
|
- <property>case</property> statement which falls through to the next case by
|
|
|
- not including a <property>break</property> or <property>return</property>
|
|
|
- within that case. To distinguish these cases from bugs, any
|
|
|
- <property>case</property> statement where <property>break</property> or
|
|
|
- <property>return</property> are omitted should contain a comment indicating
|
|
|
- that the break was intentionally omitted.
|
|
|
+ Иногда полезно писать <property>case</property> выражения, которые передают
|
|
|
+ управление следующему <property>case</property> выражению, опуская
|
|
|
+ <property>break</property> или <property>return</property>. Для того, чтобы
|
|
|
+ отличать такие случаи от ошибок, каждое <property>case</property>
|
|
|
+ выражение, где опущен <property>break</property> или
|
|
|
+ <property>return</property>, должно содержать комментарий, указывающий, что это
|
|
|
+ сделано преднамеренно.
|
|
|
</para>
|
|
|
</note>
|
|
|
- <para>
|
|
|
- Иногда полезно писать <property>case</property> выражения, которые передают
|
|
|
- управление следующему <property>case</property> выражению, опуская
|
|
|
- <property>break</property> или <property>return</property>. Для того, чтобы
|
|
|
- отличать такие случаи от ошибок, каждое <property>case</property>
|
|
|
- выражение, где опущен <property>break</property> или
|
|
|
- <property>return</property>, должно содержать комментарий, указывающий, что это
|
|
|
- сделано преднамерено.
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
</sect2>
|
|
|
|
|
|
@@ -1086,7 +1086,7 @@ switch ($numPeople) {
|
|
|
<title>Файлы</title>
|
|
|
|
|
|
<para>
|
|
|
- Каждый файл, содержащий PHP-код должен иметь заголовочный
|
|
|
+ Каждый файл, содержащий <acronym>PHP</acronym>-код должен иметь заголовочный
|
|
|
doc-блок в начале файла, содержащий как минимум следующие
|
|
|
phpDocumentor-теги(для Zend Framework):
|
|
|
</para>
|