Стандарты кодирования PHP (PSR)
- Главная
- >
- Статьи и переводы
- Стандарты кодирования PHP (PSR)
- >
Группа взаимодействия фреймворков (PHP-FIG) окончательно приняла рекомендации
к стандартам оформления кода на PHP.
Документ называется PSR (Proposing a Standards Recommendation - Предлагаемые рекомендации стандартов)
и разделен на 3 части.
Оригинальные тексты можно посмотреть на гитхабе .
Вкратце,
PSR-0: требования к названиям классов
и неймспейсов для универсального автозагрузчика.
Полное имя класса должно быть вида `()*`
`SymfonyCoreRequest` => `/path/to/project/lib/vendor/Symfony/Core/Request.php`
`ZendAcl` => `/path/to/project/lib/vendor/Zend/Acl.php`
`namespacepackage_nameClass_Name` => `/path/to/project/lib/vendor/namespace/package_name/ Class /Name.php`
PSR-1: Основные стандарты кодирования
Секция описывает общие правила оформления кода:
- Использование только тэгов
- Только UTF-8 без BOM для пхп кода
- Не стоит мешать разный функционал в одном файле
- NS и классы должны следовать psr-0
- классы объявляются в `StudlyCase`
- методы объявляются в lower `camelCase`
- константы объявляются в ТАКОМ_ВИДЕ
К свойствам класса не предъявляется требований, они могут объявляться в любом виде,
важно чтобы стиль был однотипным для всего проекта.
PSR-2: Стандарты оформления кода
Собственно представляет собой требования к оформлению кода
- код должен пользовать 4 пробела вместо ТАБ для отделения кода
- длина строки не более 80 символов, ну 120 в крайнем случае
- пустая строка после объявления NS и USE блока
- открывающая скобка `{` объявления класса и методов должна находится на следующей строке,
а закрывающая `}` на следующей строке после кода
- для всех свойств и методов обязательно указывать видимость;
ключевые слова `abstract` и `final` указываются до объявления видимости,
а `static` после
- После управляющих ключевых слов (команд языка) должен ставиться пробел, не
ставится после вызова методов и функций
- Открывающие скобки `{` для команд ставятся на одной строке с ключевым словом,
а закрывающая `}` на следующей строке после кода
- Скобки команд `()` не должны начинаться и заканчиваться пробелами
В голосовании по принятию стандартов участвовали разработчики таких проектов, как
Agavi
CakePHP, CakePHP 2
Chisimba, C4
Composer, Packagist
Doctrine, Doctrine2, et al.
Drupal
eZ Publish
FLOW3
Joomla
Lithium
PEAR, PEAR2
phpBB
PPI, PPI2
Propel, Propel 2
SabreDAV
Solar Framework, Aura Project
Symfony, Symfony2
Zend Framework, Zend Framework 2
Zikula
Соответствование требованием конкретных проектов можно посмотреть на
гугл докс
Источник с примером оформления: http://www.skillz.ru/dev/php/article-Standarty_kodirovaniya_PHP_PSR.html
05 Июнь 2012