Рубрики
Uncategorized

Автоматическая загрузка композитора

Автор оригинала: David Wong.

Composer-это инструмент для управления отношениями зависимостей в PHP. Вы можете объявить библиотеки, от которых вы зависите, в своем проекте, и Composer поможет вам установить библиотеки, от которых вы зависите.

Автоматическая загрузка означает, что библиотеки классов, определенные в файле, могут использоваться в коде без явного использования пути к файлу для включения библиотек классов.

Механизм автоматической загрузки PHP

Автоматическая загрузка PHP может использовать _ autoload () и spl_autoload_register(), но последнее является основным, потому что:

  • _ Функция автоматической загрузки () – единственная в мире. Если платформа примет это имя, это заставит пользователей платформы использовать другие _autoload (), включая пользовательские и другие библиотеки классов. Spl_autoload_register() может зарегистрировать несколько методов автоматической загрузки без этой проблемы.

  • _ _ Autoload () – это функция, которую на практике разработчики должны назначать ей переменные (такие как путь к классу и имя класса=> массив сопоставления пути к файлу). Это может зависеть только от глобальных переменных. Использование глобальных переменных не является хорошей привычкой к кодированию. Spl_autoload_register() может зарегистрировать метод класса в качестве функции автоматической загрузки, такой как spl_autoload_register Symfony (массив (self:: getInstance (),”автоматическая загрузка”);

Автоматический режим загрузки композитора

Composer предоставляет четыре способа автоматической загрузки: PSR-0, PSR-4, генерация карты классов и прямое включение файлов.

Когда дело доходит до psr-0 и psr-4, вы должны сначала понять пространства имен. Подробное описание пространств имен см. в нижней части руководства по PHP: Пространства имен [[1] (# php-пространство имен).

  • Режим Psr-0 Требование, чтобы имена каталогов соответствовали слоям пространства имен, облегчит углубление структуры каталогов. Несмотря на официальный отказ, composer по-прежнему использует psr-0 для совместимости с понижением, поскольку основные фреймворки реализовали psr-0.

Согласно правилам PSR-0, при попытке автоматической загрузки класса “Foo Bar Baz” мы будем искать “src/Foo/Bar/Baz.php”, и, наконец, эта конфигурация записывается в виде карты к сгенерированному vendor/composer/autoload_namespaces.php.

  • Режим Psr-4 Composer рекомендует его в качестве альтернативы psr-0, поскольку он проще в использовании и обеспечивает более лаконичную структуру каталогов. Вот как вы настраиваете его в composer. JSON

Согласно правилам PSR-4, при попытке автоматической загрузки класса “Foo Bar Baz” файл “src/Bar/Baz.php” идет обыск. Переключатель конфигурации psr-4 преобразуется в форму карты с пространством имен в качестве ключа и путем dir в качестве значения и записывается в сгенерированный vendor/composer/autoload_psr4.php файл.

Также обратите внимание, что в конфигурации PSR-4 и PSR-0 разделитель пространства имен в конце “Foo” должен быть добавлен и экранирован, чтобы предотвратить такие несчастные случаи, как совпадение “Foo” с “FooBar”.

  • Подход к карте классов Путем настройки указанного каталога или файла, а затем, когда Composer устанавливает или обновляет, он сканирует класс в файле, заканчивающемся на. PHP или. Inc в указанном каталоге, создает сопоставление классов с указанным путем к файлу и добавляет вновь созданный vendor/composer/autoload_classmap.php файл.

Например, если в Src/имеется Базовый класс контроллера, то эта конфигурация создается в autoload_classmap.php файл: ‘BaseController’ => $baseDir . ‘/src/BaseController.php’

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

Он генерирует массив, содержащий файлы, указанные в этих конфигурациях, и записывает вновь сгенерированные vendor/composer/autoload_files.php

После композитора. Конфигурация JSON завершена, приходите в терминал для выполнения установки composer После успешного выполнения composer поможет вам создать полный механизм загрузки и получить папку поставщика.

Наконец, пока это находится в проекте требуется 'vendor/autoload.php'; Все необходимые вам библиотеки будут автоматически загружены в соответствующее время.

Справочный материал

Руководство по PHP: Пространства имен http://php.net/language.names… Руководство по PHP: Классы автоматической загрузки http://php.net/manual/zh/lang… Подробная информация “Автоматическая загрузка библиотеки классов PHP” https://github.com/qinjx/adv_… Принципы разработки и использования Composer “Расширенные принципы Composer: пространства имен PHP и PSR-0” Автоматическая загрузка Composer, инструмента управления зависимостями PHP, http://www.jb51.net/article/5…

Ссылка на исходный текст: Ссылка на исходный текст: