自動載入作為框架解決方案的一部分

// autoload.php
spl_autoload_register(function ($class) {
    require_once "$class.php";
});

// Animal.php
class Animal {
    public function eats($food) {
         echo "Yum, $food!";
    }
}

// Ruminant.php
class Ruminant extends Animal {
    public function eats($food) {
        if ('grass' === $food) {
            parent::eats($food);
        } else {
            echo "Yuck, $food!";
        }
    }
}

// Cow.php
class Cow extends Ruminant {
}

// pasture.php
require 'autoload.php';
$animal = new Cow;
$animal->eats('grass');

感謝我們的通用自動載入器,我們可以訪問遵循自動載入器命名約定的任何類。在這個例子中,我們的約定很簡單:所需的類必須在為該類命名的同一目錄中有一個檔案,並以“.php”結尾。請注意,類名與檔名完全匹配。

沒有自動載入,我們必須手動 require 基類。如果我們建立了一個完整的動物園,我們就會有數以千計的需求宣告,可以更容易地用一個自動載入器替換。

在最後的分析中,PHP 自動載入是一種機制,可以幫助你編寫更少的機械程式碼,以便你可以專注於解決業務問題。你所要做的就是定義一個將類名對映到檔名的策略。你可以像在此處一樣滾動自己的自動載入策略。或者,你可以使用 PHP 社群採用的任何標準 API: PSR-0PSR-4 。或者,你可以使用 composer 來一般地定義和管理這些依賴項。