我正在使用 CodeIgniter,我想创建某种过滤器来了解用户何时可以/不可以访问当前控制器
如果有人知道如何以不同的方式实现这一点,那很好,但我的想法(并试图做的)如下:
CI_Controller - 这是基本的 CodeIgniter 控制器类
MY_Controller - 我使用的扩展 CI_Controller 的基本控制器
[控制器] - 任何“物理”控制器
我试图做的是:
MY_Controller.php
class MY_Controller extends CI_Controller{
private static $namespace = null;
private static $permission = array('site', 'settings');
public function __construct(){
if ((!isset($_SESSION['user'])) && (in_array(__CLASS__, $permission))){
throw new Exception('Unauthorized');
}
parent::__construct();
}
}
显然,这不起作用,因为CLASS始终是 MY_Controller 的,而不是子对象的……而且NAMESPACE也不起作用。
有人有什么想法吗?因为我真的很讨厌开始把这段代码放在其他所有的类中,我稍后会需要过滤来做一些更复杂的事情......