Thinkphp権限制御クラスで_initialize()の呼び出し原理
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 !