composer+psr-4实现自动加载

自动加载php

对于库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。你能够简单的引入这个文件,你会获得一个免费的自动加载支持。json

require 'vendor/autoload.php';

这使得你能够很容易的使用第三方代码。例如:若是你的项目依赖 monolog,你就能够像这样开始使用这个类库,而且他们将被自动加载。app

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));composer

$log->addWarning('Foo');ide

你能够在 composer.json 的 autoload 字段中增长本身的 autoloader。测试

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer 将注册一个 PSR-4 autoloader 到 Acme 命名空间 ui

你能够 定义一个从命名空间到目录的映射 。此时 src 会在你项目的根目录,与 vendor 文件夹同级。例如 src/Foo.php 文件应该包含 Acme\Foo 类。code

添加 autoload 字段后,你应该再次运行 install 命令来生成 vendor/autoload.php 文件。it

引用这个文件也将返回 autoloader 的实例,你能够将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是很是有用的,例如。class

$loader = require 'vendor/autoload.php';
$loader->add('Acme\Test\', DIR);

除了 PSR-4 自动加载,classmap 也是支持的。这容许类被自动加载,即便不符合 PSR-0 规范。详细请查看 自动

相关文章
相关标签/搜索