网站设计一般会分前台及后台,前、后台功能及权限管理都不同,习惯上会写成两部分独立的程式(extend基本的函式库),依照这样的概念,在用CodeIgniter开发前、后台功能,通常会设定一个基本的MY_Controller,然后再分别以前台Public_Controller、后台Admin_Controller extends MY_Controller。
如果是一个controller class写在一个php档案里,例如Public_Controller.php:
class Public_Controller extends MY_Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
?>
Admin_Controller.php:
class Admin_Controller extends MY_Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
?>
这时候要注意在MY_Controller.php里把Public_Controller.php、Admin_Controller.php include进来,如果没有就会出现
Fatal error: Class 'Public_Controller' not found in xxx…的错误讯息。
class MY_Controller extends Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
//把MY_Controller.php、Public_Controller.php、Admin_Controller.php都放在applicaton/libraries目录下。
include ( 'Public_Controller.php' ) ;
include ( 'Admin_Controller.php' ) ;
?>
另一个方法,是把这些controller class都写在MY_Controller.php
class MY_Controller extends Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
class Public_Controller extends MY_Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
class Admin_Controller extends MY_Controller {
function __construct ( ) {
parent :: __construct ( ) ;
}
}
?>