1. Обзор
Данный стандарт описывает спецификацию автозагрузки классов на основе путей к файлам. Он полностью совместим (и может использоваться как дополнение) с любой другой спецификацией автозагрузки, включая PSR-0. Данный стандарт также описывает правила размещения файлов, предназначенных для автозагрузки.
2. Спецификация
-
Здесь под «классом» следует понимать также интерфейсы (interface), примеси (trait) и иные подобные конструкции.
-
Полностью определённое имя класса должно иметь следующую структуру: <ПространствоИмён>(<ПодпространствоИмён>)*<ИмяКласса>
-
Полностью определённое имя класса ДОЛЖНО начинаться с пространства имён высшего уровня, указывающего на разработчика кода («имя производителя»).
-
Полностью определённое имя класса МОЖЕТ включать в себя одно или более подпространств имён.
-
Полностью определённое имя класса ДОЛЖНО заканчиваться именем класса.
-
Символ _ («знак подчёркивания») не обладает никаким особенным значением в полностью определённом имени класса.
-
В полностью определённом имени класса МОЖНО использовать буквенные символы в любых комбинациях нижнего и верхнего регистров.
-
Все имена классов ДОЛЖНЫ быть использованы с соблюдением регистрочувствительности.
При загрузке файла, соответствующего полностью определённому имени класса, используются следующие правила:
-
Последовательность из одного и более пространств и подпространств имён (не включая ведущий разделитель пространств имён) в полностью определённом имени класса (т.н. «префикс пространств имён») должна соответствовать хотя бы одному «базовому каталогу».
-
Последовательность подпространств имён после «префикса пространства имён» соответствует подкаталогу в «базовом каталоге», при этом разделители пространств имён соответствуют разделителям каталогов /. Имя подкаталога и имя подпространства имён ДОЛЖНЫ совпадать вплоть до регистра символов.
-
Имя класса, завершающее собой полностью определённое имя, соответствует имени файла с расширением .php. Имя файла и имя класса ДОЛЖНЫ совпадать вплоть до регистра символов.
В реализации автозагрузчика НЕДОПУСТИМО порождать исключения, ошибочные ситуации любого уровня и НЕ СЛЕДУЕТ возвращать какое бы то ни было значение.
3. Примеры
В таблице ниже представлены примеры соответствий полностью определённого имени класса, префикса пространства имён, базового каталога и итогового пути к файлу.
Примеры реализации автозагрузчиков, соответствующих данной спецификации, представлены в файле с примерами. Примеры реализации НЕДОПУСТИМО рассматривать как часть спецификации, т.к. они МОГУТ измениться в любое время.
Запись опубликована 2014.09.15
Источник: https://svyatoslav.biz/misc/psr_translation/#_PSR-4
Нет комментариев