【问题标题】:UniversalClassLoader is not loading classes [closed]UniversalClassLoader 没有加载类[关闭]
【发布时间】:2013-05-06 14:41:31
【问题描述】:

我编写了一个小型 php mvc 框架,我想自动加载我的类,如 Controller、Model 等。为此,我尝试使用 Symfony 的 UniversalClassLoader,他只是不会加载类,当我尝试使用它们时,我得到了这个错误

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

这里是 Bootstrap.php

require('../libraries/loader/UniversalClassLoader.php');
use Symfony\Component\ClassLoader\UniversalClassLoader;

class Bootstrap
{
    function Bootstrap()
    {

    }

    public static function run()
    {
        $auto = require('../config/Auto.php');



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



        APP\Libraries\Controller\Controller::test();

    }
}

这里是Controller.php

namespace APP\Libraries\Controller;

class Controller
{
    function __construct()
    {
        echo 1;
    }

    public static function test()
    {
        echo 1;
    }
}

我也试过 MapClassLoader 但结果是一样的。

【问题讨论】:

标签: php symfony psr-0 spl-autoloader


【解决方案1】:

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

试试这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2010-10-07
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多