Thinkphp権限制御クラスで_initialize()の呼び出し原理

11536 ワード

権限認証を使用する場合、


namespace Common\Common\Controller;
use Think\Controller;
use Think\Auth;

class AuthController extends Controller{
                protected function _initialize(){
                        //
                        $uid = session('uid');
                        
                        if(empty($uid)){
                                $this->error(' !',U('Login/index'),1);
                        }
                        
                        // ,
                         if(session('gids') == '1'){
                                return true;
                        } 
                        
                        //
                         $auth = new Auth();
                        if(!$auth->check(MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME,$uid)){
                                $this->error(' ','',1);
                        } 
                }
}


, _initialize() 。。。

,_initialize() php , __construct() 。

Controller , :
public function__という クラスを します.construct(){Hook::listen('action_begin',$this->config);// ビュークラス$this->view=Think::instance('ThinkView');//コントローラ if(method_exists($this,'_initialize'))$this->initialize();}よく :Controllerクラスにも_initialize ではなく、 クラスでカスタマイズされた です. クラスを すると にControllerクラスも され、__がトリガーされます.construct,_constructでは するか かを するinitialize は、 する は び し、 しない は されます.のだから クラスがあるとき、 に び されます.initialize !


:http://bbs.51cto.com/thread-1501917-1.html  !