Yii中特殊行为ActionFilter的使用方法示例


Posted in PHP onOctober 18, 2020

新建 app\filters\LoggingFilter 继承 yii\base\ActionFilter

LoggingFilter 的功能: 在指定请求的 action 前后各记录一条日志

<?php

namespace app\filters;

use yii\base\ActionFilter;

class LoggingFilter extends ActionFilter
{
 public function beforeAction($action)
 {
  parent::beforeAction($action);

  // To do something
  printf('This is a logging for %s\beforeAction.%s', $this->getActionId($action), PHP_EOL);

  return true;
 }

 public function afterAction($action, $result)
 {
  parent::afterAction($action, $result);

  // To do something
  printf('This is a logging for %s\afterAction.%s', $this->getActionId($action), PHP_EOL);

  return true;
 }
}

新建 app\controllers\SystemController

<?php

namespace app\controllers;

use app\filters\LoggingFilter;

class SystemController extends \yii\web\Controller
{
 public function behaviors()
 {
  parent::behaviors();

  return [
   'anchorAuth' => [
    'class' => LoggingFilter::className(),
    'only' => ['test', 'test-one'], // 仅对 'test'、'test-one' 生效
    'except' => ['test-one'], // 排除 'test-one'
   ],
  ];
 }

 public function actionTestOne()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }

 public function actionTestTwo()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }

 public function actionTest()
 {
  printf('This is a testing for %s.%s', $this->getRoute(), PHP_EOL);
 }
}

测试

请求 http://yii.test/index.php?r=system/test

This is a logging for test\beforeAction.
This is a testing for system/test.
This is a logging for test\afterAction.

请求 http://yii.test/index.php?r=system/test-one

This is a testing for system/test-one.

请求 http://yii.test/index.php?r=system/test-two

This is a testing for system/test-two.

总结

Yii 中的 ActionFilter(过滤器)相当于 Laravel 中的 Middleware(中间件),beforeAction 相当于前置中间件,afterAction 相当于后置中间件。

到此这篇关于Yii中特殊行为ActionFilter使用的文章就介绍到这了,更多相关Yii特殊行为ActionFilter使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
快速开发一个PHP扩展图文教程
Dec 12 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
解析PHP缓存函数的使用说明
May 10 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP技术开发微信公众平台
Jul 22 PHP
YII使用url组件美化管理的方法
Dec 28 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
PHP 99乘法表的几种实现代码
Oct 13 #PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 #PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 #PHP
如何利用PHP实现上传图片功能详解
Sep 24 #PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 #PHP
phpstudy隐藏index.php的方法
Sep 21 #PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 #PHP
You might like
html中select语句读取mysql表中内容
2006/10/09 PHP
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
Document 对象的常用方法
2009/07/31 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
python封装对象实现时间效果
2020/04/23 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
写自荐信的注意事项
2014/03/09 职场文书
毕业晚会主持词
2014/03/24 职场文书
委托书范文
2014/04/02 职场文书
校园文明倡议书
2014/05/16 职场文书
上党课的心得体会
2014/09/02 职场文书
瘦西湖导游词
2015/02/03 职场文书