pep*_*epe 4 php controller codeigniter
我已经使用CI的文档中描述的MY_Controller成功扩展了核心.
这样我就可以在MY_Controller的构造函数中放置一些重复的函数(即auth检查),这样它们总是在我的其他控制器的方法之前运行.
我现在的问题是我的webapp的某些部分是开放的(即,不需要登录)而其他部分需要登录.
因此,我无法从MY_Controller(包含auth检查功能)扩展我的所有控制器.
我想知道是否可以扩展核心以便拥有LOG_Controller和NOLOG_Controller.
然后,需要登录的控制器将从LOG_Controller扩展---并且不需要登录的控制器将从NOLOG_Controller扩展.
这是不可能的?(或者是不好的形式?)
似乎config/config.php只允许一个核心扩展名前缀,所以我不确定它是否可行.
让我知道你的想法或者是否有更好的方法来做到这一点.谢谢.
我使用以下技巧.在My_Controller.php中定义所有基本控制器:
<?php
class My_Controller extends CI_Controller{
}
class LOG_Controller extends My_Controller{
}
class NOLOG_Controller extends My_Controller{
}
?>
Run Code Online (Sandbox Code Playgroud)
这使得所有已定义的控制器稍后在控制器中可用.只是避免使基本控制器太胖.
您也可以查看此示例:https://github.com/aquilax/novigeroi2/blob/master/application/core/AQX_Controller.php