Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

psr-4 Автозагрузчик

Лекция



Привет, сегодня поговорим про psr, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое psr, автозагрузчик , настоятельно рекомендую прочитать все из категории Разработка программного обеспечения и информационных систем.

автозагрузчик

Ключевые слова «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе должны расцениваться так, как описано в RFC 2119.

1. Обзор

Данный PSR описывает спецификацию для автозагрузки классов на основе путей файлов. Она полностью взаимозаменяема и может использоваться в дополнение к любой другой спецификации автозагрузчика, включая PSR-0. Данный PSR также описывает, где размещать файлы, которые будут загружаться в соответствии со спецификацией.

2. Спецификация

  1. Термин "класс" обозначает как классы, так и интерфейсы, трейты и другие подобные структуры.

  2. Абсолютное имя класса имеет следующую форму:

    \<ИмяПространстваИмен>(\<ИменаПодпространствИмен>)*\<ИмяКласса>
    
    1. Абсолютное имя класса ДОЛЖНО включать в себя верхний уровень пространства имен, также известный как "имя производителя".
    2. Абсолютное имя класса МОЖЕТ включать одно и более подпространство имен.
    3. Абсолютное имя класса ДОЛЖНО заканчиваться именем класса.
    4. Символы подчеркивания не имеют какого-либо особого значения в любой части абсолютного имени класса.
    5. Для буквенных символов абсолютного пространства имен МОЖЕТ использоваться любая комбинация верхнего и нижнего регистра.
    6. Все имена классов ДОЛЖНЫ использоваться в регистрозависимом стиле.
  3. При загрузке файла, соответствующего абсолютному имени класса:

    1. В абсолютном имени класса последовательность из одного или более ведущего пространства имен и подпространств имен ("префикс пространства имен"), исключая ведущий разделитель, соответствует как минимум одной "базовой директории".
    2. Последовательность подпространств имен, следующая за "префиксом пространства имен", соответствует поддиректории в "базовой директории". Разделители пространства имен соответствуют разделителям директорий. Имя поддиректории ДОЛЖНО иметь тот же регистр символов, что и имена подпространств имен.
    3. Завершающее имя класса соответствует имени файла, заканчивающемуся .php. Об этом говорит сайт https://intellect.icu . Имя файла ДОЛЖНО совпадать иметь тот же регистр символов, что и завершающее имя класса.
  4. В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.

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

Примеры реализации автозагрузчиков, соответствующих спецификации, приведены в файле примеров. НЕДОПУСТИМО рассматривать их как часть спецификации. Примеры МОГУТ измениться в любое время.

Additional Info: 
  • PSR-4 — Автозагрузчик
  • PSR-4 метадокумент
  • Примеры реализации PSR-4

    Автозагрузчик

    Ключевые слова «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе должны расцениваться так, как описано в RFC 2119.

    1. Обзор

    Данный PSR описывает спецификацию для автозагрузки классов на основе путей файлов. Она полностью взаимозаменяема и может использоваться в дополнение к любой другой спецификации автозагрузчика, включая PSR-0. Данный PSR также описывает, где размещать файлы, которые будут загружаться в соответствии со спецификацией.

    2. Спецификация

    1. Термин "класс" обозначает как классы, так и интерфейсы, трейты и другие подобные структуры.

    2. Абсолютное имя класса имеет следующую форму:

      \<ИмяПространстваИмен>(\<ИменаПодпространствИмен>)*\<ИмяКласса>
      
      1. Абсолютное имя класса ДОЛЖНО включать в себя верхний уровень пространства имен, также известный как "имя производителя".
      2. Абсолютное имя класса МОЖЕТ включать одно и более подпространство имен.
      3. Абсолютное имя класса ДОЛЖНО заканчиваться именем класса.
      4. Символы подчеркивания не имеют какого-либо особого значения в любой части абсолютного имени класса.
      5. Для буквенных символов абсолютного пространства имен МОЖЕТ использоваться любая комбинация верхнего и нижнего регистра.
      6. Все имена классов ДОЛЖНЫ использоваться в регистрозависимом стиле.
    3. При загрузке файла, соответствующего абсолютному имени класса:

      1. В абсолютном имени класса последовательность из одного или более ведущего пространства имен и подпространств имен ("префикс пространства имен"), исключая ведущий разделитель, соответствует как минимум одной "базовой директории".
      2. Последовательность подпространств имен, следующая за "префиксом пространства имен", соответствует поддиректории в "базовой директории". Разделители пространства имен соответствуют разделителям директорий. Имя поддиректории ДОЛЖНО иметь тот же регистр символов, что и имена подпространств имен.
      3. Завершающее имя класса соответствует имени файла, заканчивающемуся .php. Имя файла ДОЛЖНО совпадать иметь тот же регистр символов, что и завершающее имя класса.
    4. В реализациях автозагрузчика НЕДОПУСТИМО выбрасывать исключения, НЕДОПУСТИМО вызывать ошибки любого уровня и НЕ СЛЕДУЕТ возвращать значение.

    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

    Примеры реализации автозагрузчиков, соответствующих спецификации, приведены в файле примеров. НЕДОПУСТИМО рассматривать их как часть спецификации. Примеры МОГУТ измениться в любое время.

    Additional Info: 
    • PSR-4 — Автозагрузчик
    • PSR-4 метадокумент
    • Примеры реализации PSR-4

Надеюсь, эта статья про psr, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое psr, автозагрузчик и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Разработка программного обеспечения и информационных систем

Из статьи мы узнали кратко, но содержательно про psr
создано: 2015-02-16
обновлено: 2021-03-13
280



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Разработка программного обеспечения и информационных систем

Термины: Разработка программного обеспечения и информационных систем