基本上,我有myclass
位于其中的 php 类,root/lib/php/
并且每当我调用它们时,我都希望从那里自动加载这些类。
现在我试图在主 index.php 文件中执行此操作。我应该如何以及在哪里正确定义spl_autoload_register
以便我可以将它用于静态类:myclass::mymethod()
?
通常,自动加载编码包含在配置文件或包含在每个页面加载中的其他文件中,并包含站点运行所需的通用代码。
就自动加载而言,对类方法的静态调用与实例化类和调用方法没有什么不同。
一个例子:
/*** nullify any existing autoloads ***/
spl_autoload_register(null, false);
/*** specify extensions that may be loaded ***/
spl_autoload_extensions('.Class.php');
/*** class Loader ***/
define('BASE_APP_PATH', '/path/to/root/web/');
function classLoader($class){
$filename = $class . '.Class.php';
$file = BASE_APP_PATH.'classes/' . $filename;
if (file_exists($file)){
include $file;
}
}
/*** register the loader functions ***/
spl_autoload_register('classLoader');
然后,您可以在不明确要求类文件的情况下执行此操作:
echo SomeClass::staticCall();