使用 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-devautoload.php 檔案可以在 vendor 目錄中找到,該目錄應該在 composer.json 所在的目錄中生成。

你應該在應用程式生命週期的設定點使用類似下面的行來提前知道此檔案。

require_once __DIR__ . '/vendor/autoload.php';

一旦包含,autoload.php 檔案負責載入你在 composer.json 檔案中提供的所有依賴項。

目錄對映的類路徑的一些示例:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php