自动加载
对于指定自动加载信息的库,Composer 会生成 vendor / autoload.php 文件。你只需包含此文件即可免费进行自动加载。
require __DIR__ . '/vendor/autoload.php';
这使得使用第三方代码变得非常容易。例如:如果你的项目依赖于 Monolog,你可以从它开始使用类,它们将被自动加载。
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
你甚至可以通过向 composer.json
添加 autoload
字段将自己的代码添加到自动装带器中
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Composer 将为 Acme 命名空间注册 PSR-4 自动加载器。
你可以定义从名称空间到目录的映射。src
目录将位于项目根目录中,与供应商目录位于同一级别。示例文件名是包含 Acme\Foo
类的 src/Foo.php
。
添加自动加载字段后,必须重新运行 dump-autoload
才能重新生成 vendor/autoload.php
文件。
包含该文件也将返回自动加载器实例,因此你可以将 include 调用的返回值存储在变量中并添加更多名称空间。例如,这对于在测试套件中自动加载类非常有用。
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
除 PSR-4 自动加载外,Composer 还支持 PSR-0,类映射和文件自动加载。