Xwab
Форумыnavigate_nextФреймворки на PHP

Стиль кодирования от ZF
Сообщения
Ant0ha

Думаю, тема будет полезна тем кто еще не определился со стилем своего кода и тем кто хочет довести его до хорошего уровня.
Материал взят из документации к ZendFramework.
Для просмотра на оф сайте: http://framework.zend.com/manual/ru/coding-standard.overview.html

ФОРМАТИРОВАНИЕ PHP ФАЙЛОВ

Общее

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

ВАЖНО: Включение бинарных файлов как разрешает __HALT_COMPILER() запрещено из любого PHP-файла Zend framework'а или файлов производных от него. Эта возможность разрешена для использования только в специальных инсталляционных скриптах.

Отступы

Для отступа используйте 4 пробела. Не используйте символ табуляции.

Максимальная длина строки

Рекомендуемая длина строки составляет 80 символов, т.е. разработчики должны стремиться держать код как можно ближе к 80-символьной границе, когда это возможно. Однако более длинные строки также допустимы. Максимальная длина любой строки PHP-кода не должна превышать 120 символов.

Переводы строк

Переводы строк должны быть как принято для текстовых файлов в Unix-системах. Строки должны заканчиваться только символом перевода на новую строку (LF). Символ перевода на новую строку в десятичном виде представляется как число 10, или как 0x0A в шестнадцатеричном.

Не используйте комбинацию символов возврата каретки/перевода строки (CRLF) как на Windows-компьютерах (0x0D, 0x0A).


__________
посл.ред. 15 Фев 2011, 19:35; всего 3 раз(а) 15 Фев 2011, 18:51
Ant0ha

СОГЛАШЕНИЯ ПО ИМЕНОВАНИЮ

Классы

Zend Framework использует схему именования классов, в соответсвтвии с которой имена классов напрямую указывают на директории, где они находятся. Корневой директорией Zend Framework'а является директория "Zend/", в которой иерархически расположены все классы.
Имена классов могут содержать только буквенно-числовые символы. Числа допустимы в именах классов, но не приветствуются. Символы нижнего подчеркивания допустимы в местах разделителей пути - имя файла "Zend/Db/Table.php" должно указывать на класс с именем "Zend_Db_Table".
Если имя класса состоит из более чем одного слова, то первая буква каждого слова должна быть заглавной. Последующие заглавные буквы недопустимы, например, имя класса "Zend_PDF" - недопустимо, в то время как имя "Zend_Pdf" допустимо.
Классы Zend Framework'а написанных Zend'ом или одной из участвующих компаний-партнеров и распространяемых с фреймворком должны всегда начинаться с префикса "Zend_" и должны располагаться в директории "Zend/" в соответствии с иерархией.
Ниже примеры допустимых имен классов:

Zend_Db
Zend_View
Zend_View_Helper

ВАЖНО: Код, который оперирует с фреймворком, но не является его частью, например, код написанный пользователем фреймворка и это не компания Zend или один из партнеров по фреймворку, не должен начинаться с префикса "Zend_".

Интерфейсы

Интерфейсы должны следовать той же схеме именования, как и классы (смотрите выше), однако должны заканчиваться словом "Interface", как в следующих примерах:
Zend_Log_Adapter_Interface
Zend_Controller_Dispatcher_Interface

Имена файлов

Для файлов допустимы буквенно-числовые символы, символы нижнего подчеркивания и тире ("-"). Пробелы запрещены.
Любой файл содержащий PHP-код должен иметь расширение ".php". Это примеры показывают допустимые имена файлов для классов из примеров в секции выше:

Zend/Db.php
Zend/Controller/Front.php
Zend/View/Helper/FormRadio.php

Имена файлов отражаются на имена классов, как описано выше.

Функции и методы

Имена функций могут содержать буквенно-числовые символы. Символы нижнего подчеркивания не разрешены. Числа разрешены в именах функций, но не приветствуются.
Имена функций должны всегда начинатся с буквы в нижнем регистре. Когда имя функции состоит из более чем одного слова, первая буква каждого нового слова должна быть заглавной. Это обычно называется "верблюжьей" нотацией.
Многословность приветствуется. Имена функций должны быть настолько говорящими, насколько это практично для повышения понимаемости кода.
Это примеры допустимых имен функций:

filterInput()
getElementById()
widgetFactory()

Для объектно-ориентированного программирования принято, чтобы методы доступа имели префикс "get" или "set". Когда используются шаблоны проектирования, такие, как "синглтон" или "фабрика", имена методов должны содержать имя шаблона, чтобы можно было быстро узнать шаблон.
Функции в глобальной области видимости ("плавающие функции") допустимы, но не приветствуются. Рекомендуется обрамлять такие функции в статические классы.

Переменные

Имена переменных могут содержать буквенно-числовые символы. Символы нижнего подчеркивания не разрешены. Числа разрешены в именах переменных, но не приветствуются.
Для переменных - членов классов, определенных с помощью префиксов области видимости "private" или "protected", первый символ имени должен быть один символ нижнего подчеркивания. Это единственное допустимое использование символа нижнего подчеркивания в имени. Переменные - члены классов определенные с помощью префикса области видимости "public" никогда не должны начинаться с символа нижнего подчеркивания.
Как и имена функций (смотрите секцию 3.3 выше) имена переменных должны начинаться с буквы в нижнем регистре и следовать "верблюжьей" нотации.
Многословность приветствуется. Имена переменных должны быть настолько говорящими, насколько это практично. Краткие имена переменных, такие как "$i" и "$n" не приветствуются нигде, кроме как в контексте маленьких циклов. Если цикл содержит более 20 строк кода, то переменные для индексов должны иметь более говорящие имена.

Константы

Константы могут содержать буквенно-числовые символы и символы нижнего подчеркивания. Числа разрешены в именах констант.
Имена констант должны быть в верхнем регистре.
Константы должны быть определены как члены классов с использованием ключевого слова "const". Определение констант в глобальной области видимости с помощью "define" допустимо, но не рекомендуется.


__________
посл.ред. 15 Фев 2011, 19:03; всего 1 раз 15 Фев 2011, 18:54
Ant0ha

СТИЛЬ КОДИРОВАНИЯ

Так как эта часть достаточно большая для одного сообщения, для её прочтения идем по ссылке:
http://framework.zend.com/manual/ru/coding-standard.coding-style.html


__________
посл.ред. 15 Фев 2011, 20:01; всего 3 раз(а) 15 Фев 2011, 18:55
Fashion

ивини,что прерываю, но прочитав несколько строк, понимаю, что данная информация похожа на бред

15 Фев 2011, 19:00
Ant0ha

Ну, это может быть твое мнение, по моему можно много чего полезного извлечь.

15 Фев 2011, 19:06
suhonok

Достаточно было просто ссылку скинуть на страницу из мана, там это хоть как то украшенно.
А самое смешное то, что даже сами разработчики ZF не полностью придерживаются этих правил)

15 Фев 2011, 19:27
Ant0ha

Да, так наглядней просто) по поводу нарушений, да. 80 символами в строке даже и не пахнет)

15 Фев 2011, 19:30
suhonok

Да и есть некоторые моменты которые противоречат советам разработчиков языка. Вернее, то что советуют разработчики, запрещают авторы зф

15 Фев 2011, 19:52
Felis

1. elseif хуже else if? чем?
2. 4 пробела якобы для одинаковой читаемости кода везде? а я ложил на это "правило" и использую табуляцию, мне удобнее. автозамена тоже не прет.
3. 80 символов максимум? 99% не кодят в стандартном фреймбуфере люникс-терминала, сразунахуй (надеюсь антимат сработает).

15 Фев 2011, 20:01
Felis

и еще, писать <p><?php echo $text ?> в шаблонах вообще идиотизм

15 Фев 2011, 20:02
Ответить на тему