我正在尝试注册一些自动加载器,我得到一个HTTP 500.我的错误日志说明如下:
[05-Aug-2013 04:32:38 UTC] PHP致命错误:未捕获的异常 消息'Function'Autoloader :: config'的'LogicException'没有 可调用的(非静态方法Autoloader :: config()不应该被调用 静态地)'在/home2/canforce/public_html/index.php:5
在错误日志的末尾有一些堆栈跟踪部分,但它出现了很多字母,所以我把它拿出来,我认为这不重要。
我认为我的自动加载器应该根据我读过的内容工作,但由于某些原因它没有,这是代码:
的index.php
include("config/autoloader.php");
spl_autoload_register('Autoloader::config');
spl_autoload_register('Autoloader::controller');
spl_autoload_register('Autoloader::service');
配置/ autoloader.php
class Autoloader {
function config($class) {
$file = 'config/' . $class . '.php';
if(file_exists($file)) {
require_once $file;
}
}
function controller($class) {
$file = 'presentation/controllers/' . $class . '.php';
if(file_exists($file)) {
require_once $file;
}
}
function service($class) {
$file = 'model/services/' . $class . '.php';
if(file_exists($file)) {
require_once $file;
}
}
}
答案 0 :(得分:0)
您需要创建Autoloader
类的实例,然后将其传递给register函数。
include("config/autoloader.php");
$autoloader = new Autoloader();
spl_autoload_register(array($autoloader, 'loader'));