PSR-4 自動載入機

PSR-4 是一個公認的建議,概述了通過檔名自動載入類的標準。建議將此建議替換為早期(現已棄用)的 PSR-0

完全限定的類名應符合以下要求:

 \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
  • 它必須包含頂級供應商名稱空間(例如:Alphabet
  • 它可以包含一個或多個子名稱空間(例如:Google\AdWord
  • 它必須包含一個結束類名稱(例如:KeywordPlanner

因此,最終的類名稱將是 Alphabet\Google\AdWord\KeywordPlanner。完全限定的類名也應轉換為有意義的檔案路徑,因此 Alphabet\Google\AdWord\KeywordPlanner 將位於 [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php

從 PHP 5.3.0 開始,可以定義自定義自動載入器功能, 以根據你定義的路徑和檔名模式載入檔案。

# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});

用適用於你的結構的值替換位置(‘classes /’)和副檔名(’.class.php’)。

Composer 包管理器支援 PSR-4 ,這意味著,如果你遵循標準,則可以使用 Composer 的供應商自動載入器自動載入專案中的類。

# Edit the composer.json file to include
{
    "autoload": {
        "psr-4": {
            "Alphabet\\": "[path_to_source]"
        }
    }
}

重新生成自動載入器檔案

$ composer dump-autoload

現在,在你的程式碼中,你可以執行以下操作:

<?php

require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();