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/