Php 在应用程序核心&x27中加载类;s代码点火器2中的子文件夹

Php 在应用程序核心&x27中加载类;s代码点火器2中的子文件夹,php,codeigniter-2,hmvc,Php,Codeigniter 2,Hmvc,在我的application/core目录中,我有classmy_Controller。 现在,我想在两个路径中创建两个类application/core/front/Frontend_Controller.php和application/core/Backend/Backend_Controller.php。然后,我的模块控制器从前端控制器和后端控制器类扩展而来。 但CI总是引发类未找到错误 编辑2014年3月20日: 我使用了@manix的建议: 1.在/application/confi

在我的
application/core
目录中,我有class
my_Controller
。 现在,我想在两个路径中创建两个类
application/core/front/Frontend_Controller.php
application/core/Backend/Backend_Controller.php
。然后,我的模块控制器从前端控制器和后端控制器类扩展而来。 但CI总是引发类未找到错误


编辑2014年3月20日:

我使用了@manix的建议: 1.在
/application/config/config.php


function __autoload($class)
{
    if (strpos($class, 'CI_') !== 0)
    {
        if (file_exists($file = APPPATH . 'core/Frontend/' . $class . EXT))
        {
            include $file;
        }

        if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT))
        {
            include $file;
        }
    }
}  
  • 创建
    /application/core/Backend/Backend\u Controller.php
    如下:
  • 我有一个菜单类扩展了你的控制器。然后接收此错误
    致命错误:在第6行的codeigniter\application\widgets\menu\Controllers\menu.php中找不到类“Backend\u Controller”。如果我把Backend_Controller.php放在
    /application/core/Backend_Controller.php
    ,就可以了。但我想把它放到一个子文件夹中
  • 解决方案(2014年3月24日更新) 感谢manix。我从他的代码中编辑以加载类。这是适合我的代码

    
    function __autoload($class) {
        if (strpos($class, 'CI_') !== 0) {
            if (file_exists($file = APPPATH . 'core/Frontent/' . $class . EXT)) {
                include $file;
            }
    
            if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT)) {
                include $file;
            }
    
            if (file_exists($file = APPPATH . 'core/' . $class . EXT)) {
                include $file;
            }
        }
    }
    

    尝试显式调用在
    application/config/
    文件夹中引发的config.php文件末尾的
    \uu autoload
    函数。请看上面的例子:

    function __autoload($class)
    {
        if (strpos($class, 'CI_') !== 0)
        {
            if (file_exists($file = APPPATH . 'core/Frontent/' . $class . EXT))
            {
                include $file;
            }
    
            if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT))
            {
                include $file;
            }
        }
    }  
    

    你试过application/core/Fronted_Controller.php吗?是的,我试过了,成功了。但我想把它放在core的子文件夹中。我编辑了这个问题。有关更多信息,请参见上文。谢谢,有些矛盾。1:您说过希望后端类位于
    application/core/Backend/
    子文件夹中。然后,您说
    然后收到此错误致命错误:在第6行的codeigniter\application\widgets\menu\Controllers\menu.php中找不到类“Backend\u Controller”。如果我将Backend_Controller.php放在/application/core/Backend_Controller.php,就可以了
    。这告诉我我发布的代码是正确的,并且您正在将后端控制器放置在未知路径中,因为菜单类从后端控制器类扩展而来。如果我把后端控制器放在/application/core/it中,就可以了,不需要使用您的代码。我想把它放在/application/core/Backend/中。后端控制器和前端控制器仍然是从某个类扩展而来的。我从你的代码中得到了一些更新。谢谢你的帮助,我的朋友!
    function __autoload($class)
    {
        if (strpos($class, 'CI_') !== 0)
        {
            if (file_exists($file = APPPATH . 'core/Frontent/' . $class . EXT))
            {
                include $file;
            }
    
            if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT))
            {
                include $file;
            }
        }
    }