自動載入
對於指定自動載入資訊的庫,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,類對映和檔案自動載入。