Yii 1.1 过滤器原理学习

本文只简单记录一下 Yii 1.1 中过滤器的运行流程和原理,如有任何问题,欢迎大家留言讨论。

Yii 1.1 的过滤器是在执行 action 前对某些操作。通过自定义过滤器,开发者可以在为一批 action 添加自己的验证逻辑。可以粗略认为是在执行 action 前执行了一个函数。

Yii 1.1 过滤器的调用是在 controller 类的 run() 函数中,通过调用 runActionWithFilters() 函数,来逐一验证 filters() 函数中定义的 filter。即在 controller 实例生成后,执行 action 前。

具体使用方法:
首先在 controller 中重写 filters() 方法,该方法返回一个过滤器配置数组,每个数据元素代表一个过滤器。对于不同的过滤器类型,数组元素的格式也不同,后边会详细给出例子,所以先不赘述了。

在说过滤器的具体使用之前,首先需要了解一个重要的类 CFilterChain 。此类用一个 list 存储了一个指定 action 的所有 filter 。执行此类的 run() 方法会从 list 中取出一个 filter 进行验证,当 list 中没有元素的时候,表示所有过滤器已顺利通过,则会执行 action 。
所有过滤器类需继承自 CFilter,通过重写 preFilter() 和 postFilter 方法来实现自己的验证逻辑。filter 方法需要传入参数 filterChain ,该参数是一个 CFilterChain 实例,如果该过滤器已验证通过,则需要调用 $filterChain->run() ,之后框架会根据 list 中的过滤器来进行下边的操作。

过滤器类型:</

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值