我最近将我的 codeigniter 版本从 1.7 升级到了 2.1。但是,我正在努力扩展我的 my_controller 类,以前它在放入 app->libraries 文件夹时工作正常。
用 CI 指令我也把它移到了 app -> core 目录,代码如下:
class MY_Controller extends CI_Controller
{
var $data=array();
var $secured=false;
var $area="user";
function my_Controller(){
parent::__construct();
// loading libraries etc
$this->load->library('session');
$this->load->helper('url');
$this->load->helper('common');
[..]
在配置文件中,我添加了以下代码行,如本教程所示:
http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY
/*
| -------------------------------------------------------------------
| Native Auto-load
| -------------------------------------------------------------------
|
| Nothing to do with cnfig/autoload.php, this allows PHP autoload to work
| for base controllers and some third-party libraries.
|
*/
function __autoload($class)
{
if(strpos($class, 'CI_') !== 0)
{
@include_once( APPPATH . 'core/'. $class . EXT );
}
}
但是我仍然收到以下 PHP 错误:
PHP 致命错误:在第 5 行的 C:\inetpub\wwwroot\latestCI\application\controllers\home.php 中找不到类 'MY_Controller'
知道为什么这不起作用,谢谢
编辑:
似乎已经让它工作了。基本上 MY_Controller 必须遵循这个结构:
<?php
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
//constructor code here
}
//Custom functions here
}
?>
否则会抛出错误。