zoukankan      html  css  js  c++  java
  • yii2运行流程

    入口文件index.js开始 

    通过Application创建app, 并且读入config, 装载扩展和组件

    通过request解析被请求的路由
    app根据路由创建controller
    controller创建action
    如果过滤器通过, 则会执行action
    action会渲染视图view
    view中的内容一般来自于model
    渲染的结果通过response返回给客户端
    这篇文章写得很清楚了,原文链接:https://blog.csdn.net/alex_my/article/details/54142711

    以下分析是为了了解yii2 yii bacDbManager的rbac权限怎么统一管理的,比如怎么让所有控制器访问之前都会统一检查权限,而不是使用Yii::$app->user->can()一个一个验证;

    统一验证我们可以在yiifiltersAccessControl的beforeAction方法里做统一验证,或者重写一个AccessControl,类似使用yii2-admin自带的rbac管理,注意重写的AccessControl要配置as access指定class,不然会使用默认的yiifiltersAccessControl

    yii2权限rbac通过AccessControl.php下面的方法beforeAction过滤是否有权限访问

    流程大概为在yiiaseController::runAction中会执行 this->beforeAction —> this->ensureBehaviors()到$behaviors

    $behaviors实际上是AccessControl的对象,attach是其基类ActionFilter中的函数将会执行ActionFilter::beforeFilter,beforeFilter又执行了beforeAction,AccessControl又重载了beforeAction,如下图

     

    最后就是执行AccessControl类下面做验证权限,

     注意使用别的比如yii2-admin插件的rbac一定要配置as access,指定类AccessControl,不然会默认使用yiifiltersAccessControl的验证方法

  • 相关阅读:
    给数组赋值nan
    loc和iloc的区别
    爬虫26-部署crawl爬虫
    爬虫25-scrapy框架详解
    爬虫24-scrapy框架部署
    爬虫23-验证码识别
    爬虫22-使用selenium爬取信息
    爬虫21-selenium用法
    爬虫20-浏览器自动运行简单方法
    爬虫19-线程生产者和消费者以及队列
  • 原文地址:https://www.cnblogs.com/JahanGu/p/12933381.html
Copyright © 2011-2022 走看看