如何在多个文件中使用 PHP Autoloader?
How to use PHP Autoloader in multiple files?
我目前尝试用自动加载器替换项目中的要求和 require_once。我正在使用 MVC 模型,需要自动加载很多文件。
文件 1: 我的自动加载器 class/function 看起来像这样:
<?php
class Autoloader {
static public function loadEverything() {
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once $root . "/src/Model/Device.php";
require_once $root . "/src/Model/Employee.php";
require_once $root . "/src/Model/User.php";
require_once $root . "/src/Controller/Controller.php";
}
}
File2: 我在其中使用此文件的文件如下所示:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once $root . "/src/Model/Autoloader.php";
spl_autoload_register('Autoloader::loadEverything');
但这不起作用。如何在 File2 中激活该自动加载?我不明白。感谢您的帮助。
这就是您想要自动加载 类 时所做的事情:
function my_autoloader($class) {
include $root . 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');
如果你想加载任何其他东西,你可以编写一个新函数,在你放置所有 require_once
东西的地方调用它。
这个有效:
class Autoloader {
static public function loadEverything() {
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
//Autoloading classes
spl_autoload_register(function ($class) {
$root . 'Model/' . $class . '.php';
});
//Manually load needed files
require_once $root . "/src/Model/Device.php";
require_once $root . "/src/Model/Employee.php";
require_once $root . "/src/Model/User.php";
require_once $root . "/src/Controller/Controller.php";
}
}
Autoloader::loadEverything();
如果您是 mvc 的新手,可以在 youtube 上观看来自 Codecourse 的视频。他有大约 25 个关于 mvc 应用程序的视频,他解释得很好。
我目前尝试用自动加载器替换项目中的要求和 require_once。我正在使用 MVC 模型,需要自动加载很多文件。
文件 1: 我的自动加载器 class/function 看起来像这样:
<?php
class Autoloader {
static public function loadEverything() {
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once $root . "/src/Model/Device.php";
require_once $root . "/src/Model/Employee.php";
require_once $root . "/src/Model/User.php";
require_once $root . "/src/Controller/Controller.php";
}
}
File2: 我在其中使用此文件的文件如下所示:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once $root . "/src/Model/Autoloader.php";
spl_autoload_register('Autoloader::loadEverything');
但这不起作用。如何在 File2 中激活该自动加载?我不明白。感谢您的帮助。
这就是您想要自动加载 类 时所做的事情:
function my_autoloader($class) {
include $root . 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');
如果你想加载任何其他东西,你可以编写一个新函数,在你放置所有 require_once
东西的地方调用它。
这个有效:
class Autoloader {
static public function loadEverything() {
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
//Autoloading classes
spl_autoload_register(function ($class) {
$root . 'Model/' . $class . '.php';
});
//Manually load needed files
require_once $root . "/src/Model/Device.php";
require_once $root . "/src/Model/Employee.php";
require_once $root . "/src/Model/User.php";
require_once $root . "/src/Controller/Controller.php";
}
}
Autoloader::loadEverything();
如果您是 mvc 的新手,可以在 youtube 上观看来自 Codecourse 的视频。他有大约 25 个关于 mvc 应用程序的视频,他解释得很好。