没有合适的资源?快使用搜索试试~ 我知道了~
Yii Framework框架中事件和行为的区别及应用实例分析
0 下载量 51 浏览量
2020-10-15
11:24:41
上传
评论
收藏 86KB PDF 举报
温馨提示
主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下
资源推荐
资源详情
资源评论
Yii Framework框架中事件和行为的区别及应用实例分析框架中事件和行为的区别及应用实例分析
主要介绍了Yii Framework框架中事件和行为的区别及应用,结合实例形式分析了Yii Framework框架中事件和行
为的相关概念、原理、区别及应用操作技巧,需要的朋友可以参考下
本文实例讲述了Yii Framework框架中事件和行为的区别及应用。分享给大家供大家参考,具体如下:
个人觉得,在 Yii 里面,最难以明白的就是事件(Event)和行为(behavior)了。这不仅仅是因为它们的概念
比较难明,关键是它们的应用场景比较难明,不知道什么时候应该使用事件和行为来开发。
关于 Yii 的事件和行为的描述,可参考 http://www.yiiframework.com/doc/api/1.1/CComponent
本文参考的文章:
http://www.larryullman.com/2010/07/20/forcing-login-for-all-pages-in-yii/
http://www.yiiframework.com/wiki/44/behaviors-events/
事件事件
事件模型就是设计模式中的“观察者模式”:当对象的状态发生了变化,那么这个对象可以将该事件通知其它对象。
为了使用事件模型,需要实现这三个步骤:1、定义事件;2、注册事件句柄;3、触发事件。
为什么要做这三个步骤呢?因为对于 PHP 本身,它的执行过程不是以进程化来运行的,
所以 Yii 的事件触发机制不会像 ActionScript 3+ 那样,直接将触发事件。
有人说,Yii 的事件概念跟 js 中的事件概念差不多,因为 Yii 是将事件绑定到 Yii::app() 的执行过程中。
由于本人对于 js 的事件没有做过深入的了解,这里不敢贸然否定,或者肯定。
费话少说,先看这样的应用场景:
我想在请求过来的时候,先将请求的 IP 的记录到数据库,然后才进行对应的相应的请求处理。
1. 通过编辑 components/Controller.php 的构造方法来处理。
如代码:
class Controller extends CController
{
public function __construct()
{
parent::__construct();
//将请求的 IP 记录到数据库
}
}
2. 通过使用事件来处理。
我们来分析一个 framework/base/CApplication.php 的 run() 方法
public function run()
{
if($this->hasEventHandler('onBeginRequest'))
$this->onBeginRequest(new CEvent($this));
$this->processRequest();
if($this->hasEventHandler('onEndRequest'))
$this->onEndRequest(new CEvent($this));
}
从代码可以看出来,在处理请求之前,Yii 首先会判断一下当前有没有处理 onBeginRequest 的函数或者类的方法绑定了,
如果有这样的函数或者类的方法存在,则先执行了它们,然后再处理请求。
那么,怎样写 onBeginRequest,或者怎样去调用呢?
方法一:方法一:修改 index.php
一般来说,我们的 index.php 最后一句是:
Yii::createWebApplication($config)->run();
资源评论
weixin_38727928
- 粉丝: 1
- 资源: 967
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- yolo5实战-yolo资源
- english-chinese-dictionary-数据结构课程设计
- mp-mysql-injector-spring-boot-starter-sql注入
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功