Лекция
Привет, сегодня поговорим про psr, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое psr, автозагрузчик , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.
Ключевые слова «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе должны расцениваться так, как описано в RFC 2119.
Данный PSR описывает спецификацию для автозагрузки классов на основе путей файлов. Она полностью взаимозаменяема и может использоваться в дополнение к любой другой спецификации автозагрузчика, включая PSR-0. Данный PSR также описывает, где размещать файлы, которые будут загружаться в соответствии со спецификацией.
Термин "класс" обозначает как классы, так и интерфейсы, трейты и другие подобные структуры.
Абсолютное имя класса имеет следующую форму:
\<ИмяПространстваИмен>(\<ИменаПодпространствИмен>)*\<ИмяКласса>
При загрузке файла, соответствующего абсолютному имени класса:
.php
. Об этом говорит сайт https://intellect.icu . Имя файла ДОЛЖНО совпадать иметь тот же регистр символов, что и завершающее имя класса.В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.
В таблице ниже показано соответствие пути к файлу, абсолютного имени класса, префикса пространства имен и базовой директории.
Абсолютное имя класса | Префикс пространства имен | Базовая директория | Путь к файлу |
---|---|---|---|
\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 |
Примеры реализации автозагрузчиков, соответствующих спецификации, приведены в файле примеров. НЕДОПУСТИМО рассматривать их как часть спецификации. Примеры МОГУТ измениться в любое время.
Additional Info:Ключевые слова «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе должны расцениваться так, как описано в RFC 2119.
Данный PSR описывает спецификацию для автозагрузки классов на основе путей файлов. Она полностью взаимозаменяема и может использоваться в дополнение к любой другой спецификации автозагрузчика, включая PSR-0. Данный PSR также описывает, где размещать файлы, которые будут загружаться в соответствии со спецификацией.
Термин "класс" обозначает как классы, так и интерфейсы, трейты и другие подобные структуры.
Абсолютное имя класса имеет следующую форму:
\<ИмяПространстваИмен>(\<ИменаПодпространствИмен>)*\<ИмяКласса>
При загрузке файла, соответствующего абсолютному имени класса:
.php
. Имя файла ДОЛЖНО совпадать иметь тот же регистр символов, что и завершающее имя класса.В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.
В таблице ниже показано соответствие пути к файлу, абсолютного имени класса, префикса пространства имен и базовой директории.
Абсолютное имя класса | Префикс пространства имен | Базовая директория | Путь к файлу |
---|---|---|---|
\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 |
Примеры реализации автозагрузчиков, соответствующих спецификации, приведены в файле примеров. НЕДОПУСТИМО рассматривать их как часть спецификации. Примеры МОГУТ измениться в любое время.
Additional Info:Надеюсь, эта статья про psr, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое psr, автозагрузчик и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем
Из статьи мы узнали кратко, но содержательно про psr
Комментарии
Оставить комментарий
Разработка программного обеспечения и информационных систем
Термины: Разработка программного обеспечения и информационных систем