网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Thinkphp权限控制类中_initialize()的调用原理-创新互联

在使用权限认证的时候,我们会这样编写权限类:

10年积累的网站制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有沈阳免费网站建设让你可以放心的选择与我们合作。

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('Think\View');
      //控制器初始化
      if(method_exists($this,'_initialize'))
        $this->_initialize();
  }

仔细理解:Controller类中也没有_initialize函数,而是在权限类中自定义的这样一个函数。

当我们初始化权限类的时候,同时也就初始化了Controller类,于是触发了__construct,在__construct中就判断是否存在_initialize函数,如果存在,则调用,不存在,则忽略。。。
所以才会有初始化权限类的时候,自动调用_initialize函数!

原创文章:http://bbs.51cto.com/thread-1501917-1.html 欢迎前来讨论!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:Thinkphp权限控制类中_initialize()的调用原理-创新互联
当前URL:http://bjjierui.cn/article/dgsjod.html

其他资讯