🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 自动加载 对于库的自动加载信息,Composer 生成了一个`vendor/autoload.php`文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。 ~~~php require 'vendor/autoload.php'; ~~~ 这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。 ~~~php $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo'); ~~~ 你可以在`composer.json`的`autoload`字段中增加自己的 autoloader。 ~~~json { "autoload": { "psr-4": {"Acme\\": "src/"} } } ~~~ Composer 将注册一个[PSR-4](http://www.php-fig.org/psr/psr-4/)autoloader 到`Acme`命名空间。 你可以定义一个从命名空间到目录的映射。此时`src`会在你项目的根目录,与`vendor`文件夹同级。例如`src/Foo.php`文件应该包含`Acme\Foo`类。 添加`autoload`字段后,你应该再次运行`install`命令来生成`vendor/autoload.php`文件。 引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。 ~~~php $loader = require 'vendor/autoload.php'; $loader->add('Acme\\Test\\', __DIR__); ~~~ 除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看[自动加载-参考](https://docs.phpcomposer.com/04-schema.html#autoload)。 > **注意:**Composer 提供了自己的 autoloader。如果你不想使用它,你可以仅仅引入`vendor/composer/autoload_*.php`文件,它返回一个关联数组,你可以通过这个关联数组配置自己的 autoloader。