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 規範。詳細請查看 自動

相關文章
相關標籤/搜索