PSR-4 на русском читать
Primary tabs
Автозагрузчик
Ключевые слова «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе должны расцениваться так, как описано в RFC 2119.
1. Обзор
Данный PSR описывает спецификацию для автозагрузки классов на основе путей файлов. Она полностью взаимозаменяема и может использоваться в дополнение к любой другой спецификации автозагрузчика, включая PSR-0. Данный PSR также описывает, где размещать файлы, которые будут загружаться в соответствии со спецификацией.
2. Спецификация
Термин "класс" обозначает как классы, так и интерфейсы, трейты и другие подобные структуры.
Абсолютное имя класса имеет следующую форму:
\<ИмяПространстваИмён>(\<ИменаПодпространствИмён>)*\<ИмяКласса>
- Абсолютное имя класса ДОЛЖНО включать в себя верхний уровень пространства имён, также известный как "имя производителя".
- Абсолютное имя класса МОЖЕТ включать одно и более подпространство имён.
- Абсолютное имя класса ДОЛЖНО заканчиваться именем класса.
- Символы подчёркивания не имеют какого-либо особого значения в любой части абсолютного имени класса.
- Для буквенных символов абсолютного пространства имён МОЖЕТ использоваться любая комбинация верхнего и нижнего регистра.
- Все имена классов ДОЛЖНЫ использоваться в регистрозависимом стиле.
При загрузке файла, соответствующего абсолютному имени класса:
- В абсолютном имени класса последовательность из одного или более ведущего пространства имён и подпространств имён ("префикс пространства имён"), исключая ведущий разделитель, соответствует как минимум одной "базовой директории".
- Последовательность подпространств имён, следующая за "префиксом пространства имён", соответствует поддиректории в "базовой директории". Разделители пространства имён соответствуют разделителям директорий. Имя поддиректории ДОЛЖНО иметь тот же регистр символов, что и имена подпространств имён.
- Завершающее имя класса соответствует имени файла, заканчивающемуся .php. Имя файла ДОЛЖНО совпадать и/или иметь тот же регистр символов, что и завершающее имя класса.
В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.
3. Примеры
В таблице ниже показано соответствие пути к файлу, абсолютного имени класса, префикса пространства имён и базовой директории.
Абсолютное имя класса Префикс пространства имён Базовая директория Путь к файлу \Acme\Log\Writer\File_Writer Acme\Log\Writer ./acme-log-writer/lib/ ./acme-log-writer/lib/File_Writer.php \Aura\Web\Response\Status Aura\Web /path/to/aura-web/src/ /path/to/aura-web/src/Response/Status.php \Symfony\Core\Request Symfony\Core ./vendor/Symfony/Core/ ./vendor/Symfony/Core/Request.php \Zend\Acl Zend /usr/includes/Zend/ /usr/includes/Zend/Acl.php
Примеры реализации автозагрузчиков, соответствующих спецификации, приведены в файле примеров. НЕДОПУСТИМО рассматривать их как часть спецификации. Примеры МОГУТ измениться в любое время.
Источник: http://www.php-fig.org/psr/psr-4/ru/
- Log in to post comments
- 22347 reads
vedro-compota
Thu, 09/21/2017 - 17:52
Permalink
Объявнение правил автозагрузки по PSR-4
См. о базовой директории и префиксе пространства имен тут: http://fkn.ktu10.com/?q=node/9437
объяснение текста:
_____________
матфак вгу и остальная классика =)
vedro-compota
Tue, 12/19/2017 - 13:20
Permalink
psr-4 пример реализации автозагрузки
см. пример функции здесь: http://fkn.ktu10.com/?q=node/8236
_____________
матфак вгу и остальная классика =)