我可以对codeigniter autoload做一个例外吗?

时间:2013-07-10 21:31:12

标签: php codeigniter

我的codeigniter网站自动加载会话。我有一个我创建的XML API页面,但由于该自动加载,我收到会话错误。我不想在此控制器上加载会话,但我不想在所有其他控制器上手动加载会话。可以这样做吗?

1 个答案:

答案 0 :(得分:2)

使用基本控制器加载会话类而不是autoload.php并让控制器扩展它。更多信息请访问:http://ellislab.com/codeigniter/user-guide/general/core_classes.html

// application/core/MY_Controller.php

class MY_Controller extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->library('session');
    }

}

// you may add additional base controller classes here

您必须将此控制器扩展为您希望有权访问会话类的控制器,所以很遗憾,您必须对现有控制器进行一些编辑:

class UserController extends MY_Controller {

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

}

其他控制器可以继续扩展CI_Controller,并且不会加载会话类。

我对所有CI项目都使用此方法,很少使用autoloader.php,它可以提供更大的灵活性。