В целях повышения качества программных продуктов, разрабатываемых внутри компании Т.Т.Консалтинг, мы вводим стандарт оформления кода PSR-2 (Proposing a Standards Recommendation). Сейчас этот стандарт не является общепринятым и носит рекомендательный характер. Разработчиком данного стандарта выступает группа взаимодействия фреймворков PHP-FIG, в состав которой входят участники таких проектов, как Joomla, phpBB, Yii, PEAR, Zend и др. Использование стандарта в рамках компании позволяет структурировать код и сделать его удобочитаемым для всех участников процесса. На данный момент используются три стандарта оформления кода PSR.
Стандарт PSR-0
Стандарт описывает именование классов в пространствах имен (namespace) для их автозагрузки. Имя класса должно содержать путь к файлу с описанием класса.
В общем виде это выглядит так: \\\\\\\\Поставщик\\\\\\\\(Пространство имен)*\\\\\\\\Имя класса
Например:
Стандарт PSR-1
Стандарт описывает общие правила оформления кода.
- Использование только тэгов
- Кодировка только UTF-8 без BOM для PHP кода
- Пространства имен и классы должны соответствовать PSR-0
- Запрещено смешивать в одном файле классов, функций, констант, настроек (ini_set) и конструкций языка (echo)
- Классы именуются в стиле StudlyCaps
- Константы пишутся в верхнем регистре. В качестве разделителя между слов используется знак подчеркивания
- Методы именуются в стиле camelCase
Стандарт PSR-2
- Стандарт более подробно раскрывает оформление кода.
- Строгое следование PSR-1
- В качестве отступов использовать 4 пробела вместо табуляции
- Длина строки с кодом 80-120 символов
- Обязательным условием является наличие пустой строки после дериктив use и namespace
- Открывающая фигурная скобка при объявлении класса или функции должна быть на новой строке, а закрывающая — на новой строке после тела класса или функции
- Область видимости (public/protected/private) необходимо объявлять у всех свойств и методов класса; abstract и final объявлять перед областью видимости; static — после нее
- Разделять пробелом управляющие конструкции (if/elseif/while/for/foraech/try-catch) и скобку.
- Пробелы между круглыми скобками и их содержимым не допустимы. *Открывающая фигурная скобка должна быть в конце строки
Пример оформления кода:
Источник "Т.Т.Консалтинг"