Верх страницы
Обложка к записи Рекомендации к стандартам оформления кода на PHP
Время для прочтения: 0 мин. 11 сек.

Рекомендации к стандартам оформления кода на PHP

PSR (Proposing a Standards Recommendation) рекомендации к стандартам оформления кода на PHP, принятые группой совместимости фреймворков PHP-FIG (Framework Interoperability Group). Сводную таблицу смотрите по ссылке PHP Coding Style Notes.

На данный момент стандарт PSR состоит из четырёх разделов.

PSR-0

Стандарт описывает именование классов в пространствах имен (namespace) для их автозагрузки.

  • Имя класса должно содержать путь к файлу с описанием класса.

В общем виде это выглядит так:

\Поставщик\(Пространство имен)*\Имя класса

Например:

\Doctrine\Common\ClassLoader => /lib/vendor/Doctrine/Common/ClassLoader.php
\Symfony\Core\Request => /lib/vendor/Symfony/Core/Request.php
\Zend\Acl => /lib/vendor/Zend/Acl.php
\Zend\Mail\Message => /lib/vendor/Zend/Mail/Message.php
\namespace\package\Class_Name => /lib/vendor/namespace/package/Class/Name.php

Символ _ в имени класса конвертируется в DIRECTORY_SEPARATOR (разделитель директорий).

PSR-1

Стандарт описывает общие правила оформления кода.

  • Использование только тэгов <?php и <?
  • Кодировка только 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) и скобку. Пробелы между круглыми скобками и их содержимым не допустимы. Открывающая фигурная скобка должна быть в конце строки

Ссылки

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

2 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Engin
10 лет назад

I’ll try to put this to good use immdeiately.

Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы