Что такое в мире PHP PSR и RFC
PSR (PHP Standard Recommendations) и RFC (Request for Comments) — это два разных механизма стандартизации в экосистеме PHP: PSR — рекомендации по совместимости компонентов, создаваемые PHP-FIG, а RFC — предложения по изменению самого языка PHP, которые обсуждаются и голосуются сообществом разработчиков ядра. Они играют ключевую роль в развитии PHP, но решают разные задачи: PSR унифицирует практики написания кода и интерфейсы библиотек, а RFC определяет эволюцию синтаксиса и функциональности языка.
PSR: стандарты для экосистемы
PSR — это серия стандартов, разработанных организацией PHP-FIG (PHP Framework Interop Group), в которую входят представители крупных PHP-проектов, таких как Symfony, Laravel, Zend Framework и других. Основная цель PHP-FIG — улучшить совместимость между различными библиотеками и фреймворками, чтобы разработчики могли легко комбинировать компоненты из разных источников.
Каждый стандарт PSR охватывает конкретную область разработки. Наиболее известные из них:
- PSR-1 — базовые правила оформления кода, например, использование открывающих тегов
<?phpи<?=и кодировка UTF-8. - PSR-12 — расширенный стиль кодирования, который является эволюцией PSR-2 и задаёт единые правила отступов, пробелов, именования и структуры файлов.
- PSR-3 — интерфейс логирования, определяющий методы
log(),info(),error()и другие, что позволяет подключать любые совместимые логгеры. - PSR-4 — стандарт автозагрузки классов, который описывает, как сопоставлять пространства имён с путями файлов. Этот стандарт используется большинством современных фреймворков и Composer.
Соблюдение PSR делает код более предсказуемым и облегчает интеграцию сторонних библиотек. Например, если библиотека следует PSR-4, её можно подключить через Composer без дополнительной настройки автозагрузки.
RFC: процесс изменения языка
RFC — это формальное предложение по изменению языка PHP. Такие предложения подаются разработчиками и обсуждаются сообществом через список рассылки PHP Internals. Каждый RFC содержит описание проблемы, предлагаемое решение, примеры кода и возможные последствия.
После обсуждения проводится голосование среди активных участников разработки ядра PHP. Чтобы RFC был принят, он должен набрать определённое количество голосов (обычно 2/3 от проголосовавших). Если предложение одобрено, оно включается в одну из будущих версий PHP.
Примеры известных RFC:
- Анонимные классы (PHP 7) — позволили создавать классы без явного имени.
- Скалярные типы (PHP 7) — добавили возможность указывать типы для параметров и возвращаемых значений.
- Атрибуты (PHP 8) — заменили аннотации в doc-блоках на формальный синтаксис.
- Конструктор с продвижением свойств (PHP 8) — сократил объявление свойств в конструкторе.
Процесс RFC делает развитие PHP прозрачным и демократичным: любой разработчик может внести предложение, и оно будет рассмотрено сообществом.
Различия и взаимодействие
Основное различие между PSR и RFC в том, что PSR — это рекомендации для разработчиков библиотек и приложений, а RFC — это изменения самого языка. PSR не является обязательным, но его соблюдение приветствуется в сообществе. RFC же, после принятия, становится частью языка и обязателен для всех.
PSR и RFC дополняют друг друга: RFC добавляет новые возможности языка, а PSR стандартизирует их использование. Например, после появления анонимных классов в PHP 7, PSR-12 включил рекомендации по их форматированию.
Коротко
- PSR — стандарты PHP-FIG для совместимости компонентов: стиль кода, автозагрузка, интерфейсы.
- RFC — предложения по изменению языка PHP, проходят обсуждение и голосование.
- PSR не обязателен, но улучшает интеграцию; RFC обязателен после принятия.
- Оба механизма способствуют развитию PHP: PSR — экосистемы, RFC — самого языка.
Похожие вопросы
- Хорошо разбираешься в принципах SOLID33%
- С какими БД ты работал33%
- Что такое middleware33%
- Какие типы данных есть в PHP33%
- Какие паттерны используешь в ходе работы33%
- В каких случаях используют индексы33%
- Часто ли приходится сталкиваться с принципами SOLID33%
- Приходилось заниматься оптимизацией запросов33%
