Словарь
← Словарь03.a / Термин
· PSR4

PSR-4

Категория
Оригинал
PSR-4 (стандарт автозагрузки) · en
Обновлено
24 апр. 2026
Теги

Суть в одном предложении

PSR-4 определяет, как пространства имён (namespace) и имена классов сопоставляются с путями к файлам в проекте.

Краткое определение

PSR-4 — стандарт PHP-FIG для автозагрузки классов: префикс неймспейса отображается на базовый каталог, остальная часть неймспейса и имя класса — на путь к файлу и имя файла. Один префикс — одна базовая директория.

Оригинал и перевод

  • Язык: английский
  • Оригинал: PSR-4
  • Буквальный перевод: стандарт автозагрузки (по смыслу документа)

Синонимы и варианты написания

  • PSR-4
  • PSR4

Происхождение

Принят PHP-FIG как замена PSR-0. Composer генерирует автозагрузчик по правилам PSR-4 из секции autoload в composer.json; современные PHP-фреймворки и библиотеки опираются на PSR-4.

Где используется

  • Composer (autoload, autoload-dump)
  • Современные PHP-фреймворки и библиотеки
  • Bitrix (локальная автозагрузка из /local/php_interface/ и т.п. по аналогичным правилам)

Когда это важно

При добавлении классов и подключении библиотек: соответствие неймспейса и пути файла PSR-4 позволяет автозагрузчику найти класс без ручных require. Нарушение правил приводит к «class not found».

Подробное объяснение

Задаётся соответствие «префикс неймспейса → базовый каталог». Например, AppServicessrc/Services. Класс AppServicesOrderService ищется в файле src/Services/OrderService.php. Имя файла должно совпадать с именем класса; один класс — один файл. Имена классов и неймспейсов по PSR-1 (например, CamelCase).

Аналоги и связанные термины

  • PSR-1 — базовый стандарт кода; имена классов и структура файлов согласуются с PSR-4
  • Autoload — механизм, который PSR-4 стандартизирует
  • Composer — инструмент, генерирующий автозагрузчик по PSR-4
  • Namespace — пространства имён, отображаемые на пути по PSR-4

Пример использования

«В composer.json указали autoload PSR-4: App\src/ — класс AppServicesOrderService лежит в src/Services/OrderService.php

Мини‑FAQ

  • PSR-0 и PSR-4 — в чём разница?

Ответ: PSR-0 устарел. В PSR-4 префикс неймспейса может быть не привязан к подпапкам (например, VendorPackage → одна базовая папка), что короче и гибче.

Смотри также

  • Autoload
  • Namespace
  • PSR-1
  • Composer
PSR-4 | Viku-Lov Studio