Предлагаем воспользоваться купоном - cvkyp05r1n1jrdwvefclqwkz6lwx28db - на 10% скидку при покупке GOLD-аккаунта DepositFiles с периодом действия 6 месяцев или 1 год. Купон действителен до 2010-10-19.
Разработчики CMS Drupal настоятельно рекомендуют всем программистам, которые собираются заняться расширением возможностей этой системы, использовать один и тот же стандарт программирования. Конечно, вы можете не прислушиваться к их мольбам и писать код на PHP так, как вы привыкли. Но все же…
В первую очередь следует заметить, что правила написания кода PHP, которые применяют разработчики Drupal, основаны на PEAR Coding Standards.
Послушавшись разработчиков Drupal и изучив их рекомендации, вы, фактически, изучите один из мировых стандартов, знание и использование которого может помочь в вашей карьере (если, конечно, она как-то связана с PHP и языками программирования).
Итак, правил оформления PHP-кода не так уж и много, и они не так уж и сложны, поэтому мы перечислим их ниже в виде коротких заметок.
Отступы в коде создаются не табуляцией, а двумя пробелами.
Операторы языка PHP (например, if,
for, while, switch и т. д.) должны отделяться от круглой скобки одним пробелом, то есть if (…). Благодаря этому их сразу можно будет отличить от функций.
Нужно использовать следующую структуру оператора switch:
switch (переменная) { case значение1: действие1; break;
case значение2: действие2; break;
default: действие_по_умолчанию; break; }
В аргументах функции нужно ставить пробел между запятой и параметром. Кроме того, пробел должен ставиться слева и справа от знака равенства. А вот между названием функции и скобкой пробел ставить нельзя (иначе мы опять начнем путать операторы с функциями). Кроме того, пробел не нужно ставить между последним параметром и закрывающей скобкой. Например, my_func($var1, $var2, $var3 = "first");.
Несколько однородных команд, идущих друг за другом, можно выравнивать
между собой с помощью пробелов. Например:
Желательно, чтобы создаваемые вами функции всегда возвращали что-нибудь (чтобы всегда выполнение функции завершалось выражением return).
Функции и методы должны именоваться в нижнем регистре.
Желательно начинать имя каждой функции с префикса, соответствующего той группе или модулю, в котором она используется. Префикс и основное имя
функции нужно указывать через знак подчеркивания.
Имена внутренних функций, которые должны использоваться только внутри вашего модуля, нужно начинать со знака подчеркивания. Например, _my_func().
Глобальные переменные также нужно начинать со знака подчеркивания. После него нужно не забыть указать префикс, соответствующий той группе или модулю, к которому относится глобальная переменная.
Имена констант всегда нужно писать в верхнем регистре. Причем начинаться
они также должны с префикса, соответствующего той группе или модулю, к которому константа относится (префикс также указывается в верхнем регистре). Префикс и основное имя константы нужно указывать через знак подчеркивания.
Если вы используете оператор указания => в массивах, следует с каждой стороны данного оператора ставить по одному пробелу. Например, $my_mass = array('foo' => 'bar');.
Желательно не использовать строки кода длиннее 80 символов. Такие длинные
строки кода желательно записывать на нескольких строчках с отступом в один уровень. Например:
Формируя массивы с помощью функции array, желательно всегда завершать строку аргументов запятой. В дальнейшем, если вам понадобится увеличить количество переменных, передаваемых функции array, лишняя запятая всегда подскажет, куда
нужно вставлять новые переменные. Например, вместо array('temp', 'temp', 'foo' => 'bar') нужно использовать array('temp', 'temp', 'foo' => 'bar',).
Комментарии в своем PHP-коде нужно указывать в формате Doxygen. Можно использовать следующие виды комментариев, однако комментарии, начинающиеся с символа #, желательно не применять:
/** * Многострочный комментарий * в стиле C. */
//Однострочный комментарий в стиле C++.
# Однострочный
комментарий в стиле Perl. # Его использование возможно, однако нежелательно.
Для определения границ PHP-кода желательно всегда использовать стиль XML. Другими словами, начало кода PHP должно определяться тегом <?php, а окончание кода PHP — тегом ?>.
Если создаваемый сценарий завершается кодом PHP, то в конце этого кода лучше не указывать закрывающий тег ?>. Использование данного тега в конце файла необязательно и, более того,
может вызвать проблемы в работе вашего кода на некоторых системах.
Все сценарии, которые вы создаете для CMS Drupal, должны начинаться со специального комментария // $Id$, который при использовании CVS будет автоматически расширен (например, до // $Id: CODING_STANDARDS.html,v 1.7 2005/11/06 02:03:52 webchick Exp $). Данный комментарий должен находиться в самом начале кодового файла, сразу на следующей строке после открывающего тега <?php.
Если вам нужно
указать пример URL-адреса в комментарии или вашем коде, то желательно указывать адрес example.com или его разновидности example.net, example.org. Данная рекомендация описана в RFC 2606.
Все файлы документации должны иметь расширение TXT.
Как было сказано выше, комментарии в коде должны соответствовать стандарту Doxygen. И все потому, что данный стандарт используется в самой системе CMS Drupal.
Стандарт Doxygen — это уникальный
стандарт генерации документации, который позволяет автоматически создавать документацию из комментариев, которые вы разместили в коде.
В соответствии со стандартом Doxygen каждый файл должен начинаться со строки вида // $Id$, и вы должны помнить об этом, создавая свои модули. Этот тег будет автоматически заменен основной информацией о файле.
Желательно писать комментарии для каждой функции, которую вы создаете. При этом комментарии данного рода необходимо указывать непосредственно
перед создаваемой функцией.
Кроме того, не следует забывать комментировать назначение форм и описывать назначение переменных, которые передаются этими формами.
Стандарт Doxygen — это намного больше, чем просто стандарт комментирования. Например, комментарии в этом стандарте могут содержать различные переменные, которые будут автоматически заменяться тем или иным текстом, в зависимости от создаваемого файла. Более подробно об этом стандарте можно узнать на странице www.stack.nl/~dimitri/doxygen/manual.html.