用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7912|回复: 6
收起左侧

如何建立自己的基类控制器?

[复制链接]
发表于 2014-5-31 17:16:39 | 显示全部楼层 |阅读模式
controllers/admin/index.php
后台首页,如何让他继承自定义的基类 ,让后台的所有控制器 extends AdminBase

controllers/index.php
前台首页,让前台的所有控制器 extends HomeBase


发表于 2014-6-3 11:00:33 | 显示全部楼层
你要使用CI框架,那么你的控制器就需要继承CI的控制器,而你希望要继承自定义的基类,这就涉及到了多继承,所以,如果你的php版本在5.4以上,貌似 php也能实现多继承了。如果你的php版本不是5.4以上的,你要么扩展CI的控制器基类,要么你把你自定义的基类当做一个library类,然后在你继承后分别在__construct()方法里面手动加载好了。也许还有更好的办法,期待大家的高见了。
发表于 2014-6-11 16:15:32 | 显示全部楼层
基类继承与CI的基类 , 然后其他的控制权继承你自己的基类即可
发表于 2014-6-12 09:36:29 | 显示全部楼层
application/core/MY_Controller.php
PHP复制代码
 
class MY_Controller extends CI_Controller{
//do something
}
class Front_Controller extends MY_Controller{
//for front controller
}
class Backend_Controller extends MY_Controller{
// for backend controller
}
 
复制代码
发表于 2015-10-5 23:06:05 | 显示全部楼层
分文件写法是怎样的。上面两个自定义的类文件应该放在哪个目录下。
发表于 2015-10-29 16:18:46 | 显示全部楼层
@peoong  ,写在一个文件里面,我试过了,可以的
<?php
class MY_Controller extends CI_Controller {

        public function __construct() {
                parent::__construct();
        }


        public function test(){
                echo 111;
        }
}


class Front_Controller extends MY_Controller{

        public function __construct() {
                parent::__construct();
        }
}
发表于 2016-2-27 09:40:13 | 显示全部楼层
为什么可以类名可以使用不同的前缀的?MY_Controller  Front_Controller 。同一个文件可以定义多个类?

本版积分规则