PHP Yii框架过滤器用法详解

Yii过滤器简介

过滤器是一段代码,可被配置在控制器动作执行之前或之后执行。例如, 访问控制过滤器将被执行以确保在执行请求的动作之前用户已通过身份验证;性能过滤器可用于测量控制器执行所用的时间。

一个动作可以有多个过滤器。过滤器执行顺序为它们出现在过滤器列表中的顺序。过滤器可以阻止动作及后面其他过滤器的执行。

过滤器有两种写法:

  • 基于方法的过滤器
  • 基于自定义过滤器类的过滤器
无论哪种过滤器,都必须在控制器中重写控制器的public function filters()方法,设置哪个过滤器对哪个动作起作用。

基于方法的过滤器

编写基于方法的过滤器,要经过三步:

  1. 在控制器中编写动作(Action);
  2. 在控制器中编写过滤器函数,函数名必须以filter为前缀,如:function filterAccessControl();
  3. 重写父类CController的filters()方法,定义过滤器与动作的关系;

实例:

<?php
	
	class UserController extends CController{
		**
		 * 第一步:创建动作
		 */
			function actionAdd(){ 
				echo "actionAdd";
			}
			/** 
			* 第二步:创建基于方法的过滤器
			 */
			public function filterAddFilter($filterChain) {
				echo "基于方法的过滤器UserController.filterAdd<br>";
				$filterChain->run();
			}
			/** 
			* 第三步:重写父类CController的filters()方法,定义过滤器与动作的关系 
			* @see CController::filters() 
			*/
			public function filters(){
				return array(
			//定义过滤器与动作的关联关系
					'addFilter + add',
// 					array(
// 							'application.filters.TestFilter',					
// 					),
					
			);
		}
	}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值