新建 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使用内容请搜索站长技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长技术!
20210323第一家量产国产化蓝牙AOA高精度定位基站生态合能培训会上海站现场直播下...
IViewLocationExpander API ExpandViewLocations Razor视图路径,视图引擎会搜索...
项目背景 最近项目里有个webpack版本较老的项目,由于升级和换框架暂时不被leade...
详解Spring mvc ant path的使用方法 概要: 任何一个WEB都需要解决URL与请求处理...
这里尊托云数小编参考了几篇文章特为大家整理下,用到的朋友多支持一下了。 进行...
戳蓝字“ CSDN云计算 ”关注我们哦 作者 | 刘丹 出品 | CSDN云计算IDCSDNcloud ...
Epoll 是个很老的知识点,是后端工程师的经典必修课。这种知识具备的特点就是研...
堆 Heap Heap:可以迅速找到一堆数中的 最大 或者 最小 值的数据结构。 将根节点...
1.现在复习的感觉就是:马上要有一大波僵尸涌过来,但老子连向日葵都还没种! 2...
WebService端代码 复制代码 代码如下: /// summary /// 上传文件到远程服务器 //...