私は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も機能しません。
誰かが何か考えを持っていますか?Idは、このコードスニペットを他のすべてのクラスに配置し始めるのが本当に嫌いであり、後でさらに複雑なことを行うためにフィルタリングが必要になるためです...