UniversalClassLoader没有加载类



我写了一个小的php mvc框架,我想自动加载我的类,如控制器,模型等。为此目的,我尝试使用UniversalClassLoader从Symfony,他只是不会加载类,当我尝试使用它们,我得到这个错误

Fatal error: Class 'APPLibrariesControllerController' not found in /opt/lampp/htdocs/web/globeapi/Bootstrap.php on line 24

这里是Bootstrap.php

require('../libraries/loader/UniversalClassLoader.php');
use SymfonyComponentClassLoaderUniversalClassLoader;
class Bootstrap
{
    function Bootstrap()
    {
    }
    public static function run()
    {
        $auto = require('../config/Auto.php');

            $SPL = new UniversalClassLoader();
            $SPL->registerNamespace('APPLibrariesController', '../libraries/controller/Controller.php');
            $SPL->register();

        APPLibrariesControllerController::test();
    }
}

这里是Controller.php

namespace APPLibrariesController;
class Controller
{
    function __construct()
    {
        echo 1;
    }
    public static function test()
    {
        echo 1;
    }
}

我也尝试过MapClassLoader,但结果是相同的。

我认为你只需要注册主命名空间。第二个参数需要是路径而不是文件。也尝试绝对路径而不是相对路径。下一个问题是目录是小写的。因此,自动加载器期望名称空间APPLibrariesController的路径LIB_FOLDER/APP/Libraries/Controller。我不知道是否可以设置别名来将小写转换为大写。但似乎并非如此。

试试这样写:

$SPL->registerNamespace('APP', __DIR__.'/../LIB_FOLDER');

相关内容

  • 没有找到相关文章

最新更新