Поиск…
Автозагрузка
Для библиотек, которые определяют информацию автозагрузки, Composer создает файл vendor / autoload.php. Вы можете просто включить этот файл, и вы получите автозагрузку бесплатно.
require __DIR__ . '/vendor/autoload.php';
Это делает его очень простым в использовании стороннего кода. Например: если ваш проект зависит от Монолога, вы можете просто начать с него использовать классы, и они будут автоматически загружены.
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
Вы даже можете добавить свой собственный код в автозагрузчик, добавив поле autoload
в composer.json
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Композитор зарегистрирует автозагрузчик PSR-4 для пространства имен Acme.
Вы определяете отображение из пространств имен в каталоги. Каталог src
будет в вашем корневом каталоге проекта на том же уровне, что и каталог поставщиков. Примером имени файла будет src/Foo.php
содержащий класс Acme\Foo
.
После добавления поля автозагрузки вам необходимо повторно запустить dump-autoload
для повторного создания файла vendor/autoload.php
.
В том числе этот файл также вернет экземпляр автозагрузчика, поэтому вы можете сохранить возвращаемое значение входящего вызова в переменной и добавить еще пространство имен. Это может быть полезно, например, для автозагрузки классов в тестовом наборе.
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
В дополнение к автозагрузке PSR-4, Composer также поддерживает автозагрузку PSR-0, classmap и файлов.