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

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

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

PSR-0

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

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

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

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

Например:

DoctrineCommonClassLoader => /lib/vendor/Doctrine/Common/ClassLoader.php
SymfonyCoreRequest => /lib/vendor/Symfony/Core/Request.php
ZendAcl => /lib/vendor/Zend/Acl.php
ZendMailMessage => /lib/vendor/Zend/Mail/Message.php
namespacepackageClass_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) и скобку. Пробелы между круглыми скобками и их содержимым не допустимы. Открывающая фигурная скобка должна быть в конце строки

Ссылки

Источник: https://www.kobzarev.com/programming/proposing-a-standards-recommendation/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: