Что такое PSR в PHP?

«Что такое PSR в PHP?» — вопрос из категории PHP Core, который задают на 45% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

PSR (PHP Standards Recommendation) — это набор стандартов, разработанных группой PHP-FIG (Framework Interop Group) для обеспечения совместимости и единообразия кода в экосистеме PHP.

Основные стандарты:

  • PSR-1 (Basic Coding Standard) и PSR-12 (Extended Coding Style Guide): определяют базовый стиль кодирования (именование, структура файлов, отступы).
  • PSR-4 (Autoloading Standard): стандарт автозагрузки классов через пространства имён и файловую структуру. Это основа современной автозагрузки через Composer.
  • PSR-7 (HTTP Message Interface): определяет интерфейсы для HTTP-запросов и ответов, что позволяет создавать взаимозаменяемые компоненты для работы с HTTP.
  • PSR-11 (Container Interface): стандартизирует интерфейс контейнера внедрения зависимостей (DI).
  • PSR-14 (Event Dispatcher): определяет интерфейсы для системы событий (event dispatcher).

Практический пример PSR-4 в composer.json:

{
    "autoload": {
        "psr-4": {
            "MyApp\": "src/"
        }
    }
}

После этого класс MyAppServiceUserService будет автоматически загружен из файла src/Service/UserService.php. Следование PSR упрощает интеграцию сторонних библиотек и поддержку кода.