Стандарт PSR в PHP
PSR
расшифровывается как PHP Standards Recommendations
, по сути это набор рекомендаций по программированию на языке PHP
. Процесс разработки и принятия новых PSR
рекомендаций можно отслеживать на официальном сайте PHP-FIG.
В сокращении PSR
есть слово стандарт, но пока это список рекомендаций. Соблюдать их или нет — решение разработчика. Он может писать код, используя свой стиль и технические решения. В то же время в среде профессиональных программистов знание и соблюдение PSR — негласное правило. Особенно если речь идет о совместной работе над крупными проектами.
Основное назначение — предоставить проверенные общие концепции, чтобы сделать разработку простой и удобной, повысить надежность и работоспособность продуктов.
Зачем нужен PSR
- Делает код единообразным
- Упрощает совместную работу над проектом или изменение чужого продукта
- Поддерживает совместимость между программными продуктами на
PHP
- Повышает прозрачность разработки и тестирования, надежность и безопасность продуктов
Статусы PSR
В зависимости от стадии разработки, стандарту PSR
присваиваются статусы:
Draft
черновой вариант, еще не прошедший проверку или отправленный на доработкуAccepted
вариант, успешно прошедший проверку и принятый на голосовании как официальный стандартAbandoned
проект, разработка которого временно или полностью прекращенаDeprecated
ранее принятый стандарт, который устарел и был заменен более совершенной версией
Виды стандартов PSR
Стандарты PSR
поделены на части. Каждый содержит информацию о том, как нужно выполнять задачи. Например, ставить переносы строк, называть переменные, реализовывать автозагрузку. За каждую часть отвечает свой стандарт. Каждый начинается с аббревиатуры PSR
, после которой идет номер.
Автозагрузка классов
Решает проблему импорта описаний объектов.
PSR-0
самый первый стандарт, принятый в 2010 году. Упростил присвоение имен файлам, упорядочил и привел в единый вид структуру каталогов. Сейчас считается устаревшим.PSR-4
пришел на сменуPSR-0
в 2013 году. Может использоваться как его полная замена или дополнение. БлагодаряPSR-4
части и компоненты одного фреймворка или библиотеки можно использовать в других проектах. Сегодня этот стандарт используется по умолчанию вComposer
— пакетном менеджере уровня приложений дляPHP
.
Стили кодирования
Упрощают понимание кода, написанного другими авторами, ускоряют разработку совместных проектов, доработку и поддержку чужих продуктов.
PSR-1
основной стандарт кодирования. В нем указаны правила использования теговPHP
, кодировки файлов, разделения мест объявления класса, функции и их использования и прочемуPSR-2
руководство по стилю программирования, которое дополняет и объясняет стандартPSR-1
. В настоящее время считается устаревшимPSR-12
дополнение кPSR-1
, перечисляет правила и требования к форматированию кодаPHP
Интерфейсы
Регулируют и унифицируют выполнение однотипных функций.
PSR-3
стандартизирует и упрощает протоколирование — запись лог-файлов с данными о всех событияхPSR-6/16.
позволяет стандартно сохранять и извлекать данные из кэша с помощью унифицированного интерфейсаPSR-11
стандартизирует управление зависимостями кода, которые появляются при использовании сторонних компонентовPSR-13
облегчает разработку и использование прикладных программных интерфейсовAPI
PSR-14
помогает свободно использовать библиотеки и компоненты в различных приложениях и средах
HTTP
Упрощает разработку веб-приложений, обеспечивает их взаимодействие с сервером и клиентом.
PSR-7
набор интерфейсов для фреймворков, позволяющих программистам писать повторно используемый кодPSR-15
стандартизирует обработку HTTP-запросов, задает правила для компонентов промежуточного ПО HTTP-сервераPSR-17
определяет работу для фабрик, шаблонов проектирования, на которых создаются HTTP-объекты, совместимые сPSR-7
PSR-18
унифицирует отправку HTTP-запросов и получение HTTP-ответов, делает библиотеки удобнее для повторного использования, уменьшая число зависимостей и конфликтов версий