使用 Composer 自動載入
雖然 composer 提供了一個管理 PHP 專案依賴關係的系統(例如來自 Packagist ),但它也可以作為自動載入器,指定在哪裡查詢特定的名稱空間或包含通用函式檔案。
它以 composer.json
檔案開頭:
{
// ...
"autoload": {
"psr-4": {
"MyVendorName\\MyProject": "src/"
},
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"MyVendorName\\MyProject\\Tests": "tests/"
}
}
}
此配置程式碼確保名稱空間 MyVendorName\MyProject
中的所有類都對映到 src
目錄,並將 MyVendorName\MyProject\Tests
中的所有類對映到 tests
目錄(相對於你的根目錄)。它還會自動包含檔案 functions.php
。
將其放入 composer.json
檔案後,在終端中執行 composer update
,讓作曲家更新依賴項,鎖定檔案並生成 autoload.php
檔案。部署到生產環境時,你將使用 composer install --no-dev
。autoload.php
檔案可以在 vendor
目錄中找到,該目錄應該在 composer.json
所在的目錄中生成。
你應該在應用程式生命週期的設定點使用類似下面的行來提前知道此檔案。
require_once __DIR__ . '/vendor/autoload.php';
一旦包含,autoload.php
檔案負責載入你在 composer.json
檔案中提供的所有依賴項。
目錄對映的類路徑的一些示例:
MyVendorName\MyProject\Shapes\Square
➔src/Shapes/Square.php
。MyVendorName\MyProject\Tests\Shapes\Square
➔tests/Shapes/Square.php
。