Поиск…


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

Для библиотек, которые определяют информацию автозагрузки, 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 и файлов.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow