Секретные записки WEB-программиста




100mbru, bitrix, CentOS, cms, drupal, java, joomla, LAMP, linux, mysql, nicru, Open-Source, php, Red Hat, seo, Typo3, ubuntu, win, windows, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг

Стандарты кодирования PHP (PSR)

14.09.2012

Группа взаимодействия фреймворков (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