自动加载作为框架解决方案的一部分

// 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 来一般地定义和管理这些依赖项。