自動載入

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