Принципы написания кода
Материал из Flazy wiki
Правила и рекомендации, изложенные в этом разделе, относится к PHP, JavaScript, SQL и другим языкам программирования которые используется во Flazy.
Содержание |
Правила наименования
Правила наименования применяются для обозначения переменных, функций, классов, атрибутов, массивов, массивов элементов, HTML полей, форм, запросов, таблиц базы данных, полей базы данных, а также любых других элементов Flazy.
- Все имена должны быть в нижнем регистре.
- Используйте _ (подчеркивание) для разделитель слов. Пример:
$date_format
. Никогда не начинайте названия с подчеркивания (за исключением вложенных функций, которые должны начинаться с символа подчеркивания). - Используйте префикс
num
для элементов, которые представляют количество. Пример:$num_users
. Используйте префиксcur
для элементов, которые представляют собой текущие значение и повторяются (результаты базы данных, массивов и т.д.). - Избегайте всех форм венгерской нотации или дериватов.
- Используйте здравый смысл. Если у вас есть сомнения, посмотрите на аналогичные части исходного кода во Flazy.
Правила скобок и отступов
Стиль отступов во Flazy строится по правилам Allman стиля. Все отступы должны быть сделаны табом, а не пробелом. Пример:
if ($a == $b) { do_something(); } else { do_something_else(); }
Обратите внимание на пробелы между ключевыми словами и скобкой. Исключением из стандарта Allman является "braceless" блоки. Использование блоков braceless поощряется. Например:
if ($a == $b) do_something(); else do_something_else();
Если автор предпочитает, то блок кода может также быть размещён на той же линии, что и условие.
Разрыв строк
Все строки должны быть только Unix line breaks. Установите редактор для сохранения файлов в стиле UNIX.
Правила PHP кода
Следующие правила применяются только к PHP коду.
- Используйте одинарные кавычки, а не двойные при работе со строками. Пример
$str = 'Участники: '.$num_users;
а не$str = "Участники: $num_users";
. - Оставляйте пробел в одну строку сверху и снизу каждого блока php кода при условии, что блок представляет собой несколько строк. Т.е. следует оставлять одну пустую строку выше каждого
?>
и под каждым<?php
. Исключением из этого может быть одна строчка кода и в этом случае весь блок должен быть на одной линии. - Не используйте короткие теги (
<?
,<?=
), следует использовать их полный эквивалент (<?php
,<?php echo
).
Правила SQL кода
Следующие правила применяются только к SQL коду.
- Всегда проверяйте потенциально опасные данные используя
$forum_db->escape()
. Например, ожидаемые целочисленные значения должны быть вызваны используяintval()
, прежде чем использовать в запросе. - Префиксы имён таблиц использовать через
$forum_db->prefix
. - Используйте стиль соединения (join) SQL2003.
- Для кросс-совместимости с разными типами баз данным нужно использовать
$forum_db->query_build
, которая позволяет легко создавать и использовать кросс-совместимые запросы. В редких случаях, когда совместимость невозможна, следует приложить все усилия чтобы обеспечить альтернативные запросы для других поддерживаемых типов баз данных.
Написание безопасного кода
- Проверяйте данные перед сохранением их в базу данных (Например на валидность).
- Проверяйте данные до вызова их браузером (Например,
forum_htmlencode()
).