Php 我可以对codeigniter自动加载做个例外吗?

Php 我可以对codeigniter自动加载做个例外吗?,php,codeigniter,Php,Codeigniter,我的codeigniter站点自动加载会话。我创建了一个XMLAPI页面,但是由于自动加载,我得到了一个会话错误。我不希望在此控制器上加载会话,但我不希望必须在所有其他控制器上手动加载会话。可以这样做吗?使用基本控制器来加载会话类,而不是使用autoload.php并让控制器对其进行扩展。更多信息请点击此处: 您必须使用希望访问会话类的控制器扩展此控制器,因此很遗憾,您必须对现有控制器进行一些编辑: class UserController extends MY_Controller {

我的codeigniter站点自动加载会话。我创建了一个XMLAPI页面,但是由于自动加载,我得到了一个会话错误。我不希望在此控制器上加载会话,但我不希望必须在所有其他控制器上手动加载会话。可以这样做吗?

使用基本控制器来加载会话类,而不是使用
autoload.php
并让控制器对其进行扩展。更多信息请点击此处:

您必须使用希望访问会话类的控制器扩展此控制器,因此很遗憾,您必须对现有控制器进行一些编辑:

class UserController extends MY_Controller {

    public function index()
    {
        // session class is loaded
    }

}
其他控制器可以继续扩展CI_控制器,会话类将不会加载


我在所有CI项目中都使用这种方法,很少使用
autoloader.php
,它允许更大的灵活性。

您能为需要加载会话的会话的所有控制器创建一个基本控制器并扩展该控制器吗?然后您的XML API one可以使用不同的基础。我想我可以,但仍然需要手动编辑我的所有文件。如果我错了,请纠正我,但这不需要手动编辑我现有的所有控制器吗?我真的只是想制作一个单独的文件,而不是所有其他文件。我想我是在尝试创建一个异常,而不是回避自动加载。是的,这就是它所需要的。除非你想要一些真正的肮脏的东西,否则这是没有办法的。最好是迈出这第一步,以后再省去麻烦,总会有一些棘手的情况发生,这种方法的灵活性会得到回报。只需为
扩展CI_控制器{
grep您的项目,手动编辑文件不应超过几分钟(安全方式)。我通常有4或5个不同的基本控制器(您不必使用“MY_Controller”作为类名)。我能想到的唯一其他方式包括编辑系统文件;核心加载程序类(autoloader函数是
private
,因此不能通过MY_Loader.php进行扩展)。您对该选项感兴趣吗?您有办法识别“异常”吗我们可以使用带有香草PHP的URL?这不是一个好的解决方案,但可以做到。一旦你选择加入自动加载器,你就不能退出。谢谢,我认为控制器扩展将是一个不错的选择。
class UserController extends MY_Controller {

    public function index()
    {
        // session class is loaded
    }

}