自動載入作為框架解決方案的一部分
// 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-0 或 PSR-4 。或者,你可以使用 composer 來一般地定義和管理這些依賴項。