SPL_AUTOLOAD_REQISTER类未加载



我有一个看起来像

的文件夹结构
base_dir-
        Includes.php
        Libs-
             Database.php
             Log.php
             Cofing.php
        Models-
             someClass.php
        Scheduled-
             test.php

我的 Includes.php

spl_autoload_register(NULL, FALSE);
spl_autoload_extensions('.php, .class.php, lib.php');
function libLoader($name) {
    $file = 'Libs/' . $name . '.php';
    if (!file_exists($file)) {
        // throw new Exception("Error Loading Library: $file does not exists!", 1);
        return FALSE;
    }
    require_once $file;
}
function modelLoader($name) {
    $file = 'Models/' . $name . '.php';
    if (!file_exists($file)) {
        // throw new Exception("Error Loading Library: $file does not exists!", 1);
        return FALSE;
    }
    require_once $file;
}
spl_autoload_register('libLoader');
spl_autoload_register('modelLoader');

我的 someClass.php

require_once '../Includes.php';
class someClass extends Database
{
    public function __construct() { return 'hello world'; }
}

test.php

require_once '../Includes.php';
try {
     $loads = new someClass();
} catch (Exception $e) {
    echo "Exception: " . $e->getMessage();
}

当我运行test.php时,我在.../计划/test.php

上找不到someclass

SPL是否可以与Someclass.php这样的扩展类工作,还是我需要包括要出版的类?

为什么它不会找到someClass.php

谢谢

更改

$file = 'Models/' . $name . '.php'; 

to

$file = __DIR__ . '/Models/' . $name . '.php'; 

在您的型号中,自动加载器(以及Libloader中的等效物)以确保其从正确的目录进行搜索,而不是test.php文件位于

的目录。

相关内容

  • 没有找到相关文章

最新更新