yii事件

控制器:

public function actionTests1(){
  $c = new \app\components\cat();
  $m = new \app\components\mou;
  $g = new \app\components\dog;
  Event::on(\app\components\cat::className(),‘miao‘,[$m,‘run‘]);
  // Event::on(cat::className(),‘miao‘,function(){echo 11;});
  // $c->on(‘miao‘,[$m,‘run‘]);
  // $c->on(‘miao‘,[$g,‘look‘]);
  $c->shut();
}

------------------------------

<?php
namespace app\components;
use \yii\base\Event;
class myevent extends Event{
  public $message;
}
class cat extends \yii\base\Component{
  public function shut(){
    echo ‘miaomiaomiao‘;
    $me = new myevent();
    $me->message = ‘sdasdas‘;
    $this->trigger(‘miao‘,$me);
  }
}

-----------------------

<?php
namespace app\components;
class mou{
  public function run($me){
    echo $me->message;
    echo ‘run run run‘;
  }
}

时间: 2024-09-30 06:36:58

yii事件的相关文章

与《YII框架》不得不说的故事—5篇目录

与<YII框架>不得不说的故事—基础篇 第1章 课程目标 1-1 课程目标 (00:54) 第2章 课前知识准备 2-1 YII的启动和安装 (05:12) 2-2 YII请求处理流程 (02:44) 2-3 命名空间 (10:46) 第3章 控制器 3-1 控制器的创建 (03:22) 3-2 控制器之请求处理 (05:58) 3-3 控制器之响应处理 (09:09) 3-4 控制器之session处理 (09:25) 3-5 控制器之cookie处理 (09:11) 第4章 视图 4-1

Yii2之事件

众所周知,yii的三大特性是:属性.事件.行为,上一篇博文简单讲解了yii中的属性,本文接着讲讲yii的事件. 事件是代码解耦的一种方式,设计业务流程的一种模式.在yii2.0中,通过Yii\base\Component继承yii\base\Object, 重载__get().__set()方法,引入了事件和行为,使得开发变得十分方便.然而,在方便开发的同时也牺牲了一定的效率, 所以若不需要使用事件和行为,可不必继承Component而选择继承Object,Object的效率更接近原生的PHP类

Yii 2.0 中事件的使用

关于PHP的事件处理,参照 http://www.cnblogs.com/mafeifan/p/4322238.html http://www.cnblogs.com/mafeifan/p/4322271.html 为什么要使用事件?可能我们会有下面的业务需求,每当一个新用户注册成功会我们要给管理员发封邮件,还要有推送通知. 之前的代码可能是这样 if($model->save()){ // 注册成功, 跳转 } 要变成这样 if($model->save()){ $mailObj->s

YII框架分析笔记2:组件和事件行为管理

Yii是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.CComponent几乎是所有类的基类,它控制着组件与事件的管理,其方法与属性如下,私有变量$_e数据存放事件(evnet,有些地方叫 hook),$_m数组存放行为(behavior). 组件管理 YII是一个纯oop框架,很多类中的成员变量的受保护或者私有的,CComponent中利用php中的魔术方法__get(),__set()来访问和设置属性,但这些方法的作用远不指这些.下面用__get()来说明 [php] vi

清晰理解Yii的事件和行为--假如你翻了十多页百度搜索结果还是一无所获的话:)

编程也许真的是个技术活,每次你被概念搞的蒙头转向,无从下手的时候你也许会这么想.但这也就是一会会的事,如果你在晚上喝着茶,咬着牙,僵硬着脖子,一页一页的点百度,然后在笔记上一句话一句话的记下你看到的每一篇文章中看懂了的那一句,我想很快那一句一句的积累会把你带到一个恍然大悟的时刻.这点请你务必相信.但前提是,你翻了十多页的百度看到的相关文章大部分是不重复的....... 总结:上面一段话说了两件事,1柳暗花明是确定是可以常常有的,2百度是确定让人很恼火的. 再总结:上面都是废话,下面开始干货. 让

YII框架的事件机制

一.什么是事件机制 解释:发生了一件事情,然后某些东西对这件事作出反应. 例子:假设发生了A同学结婚事件,然后B同学给份子钱反应,那么,B是怎么知道(监听)A事件的发生了呢,有两种办法. 扫描式:B不断的询问A是否要结婚. 绑定式:A要结婚的时候会及时通知B. 二.Yii框架的事件实现方式 Yii采用的是观察者模式来实现事件机制. 事件的监听方式,采用的是,绑定式. 绑定级别有,对象级别绑定,类级别绑定. 下面是代码实例. 1.在 vendor 目录下 新建 classmate 并制作 A同学,

Yii的事件和行为的区别和应用

关于 Yii 的事件和行为的描述,可参考 http://www.yiiframework.com/doc/api/1.1/CComponent 事件 事件模型就是设计模式中的“观察者模式”:当对象的状态发生了变化,那么这个对象可以将该事件通知其它对象. 为了使用事件模型,需要实现这三个步骤:1.定义事件:2.注册事件句柄:3.触发事件. 为什么要做这三个步骤呢?因为对于 PHP 本身,它的执行过程不是以进程化来运行的, 所以 Yii 的事件触发机制不会像 ActionScript 3+ 那样,直

Yii中的CComponent应用实例

首先我们先了解一下如何创建一个CComponent,手册讲述如下: CComponent 是所有组件类的基类. CComponent 实现了定义.使用属性和事件的协议. 属性是通过getter方法或/和setter方法定义.访问属性就像访问普通的对象变量.读取或写入属性将调用应相的getter或setter方法,例如: 1 2 $a=$component->text;     // equivalent to $a=$component->getText(); $component->t

Yii源码阅读笔记(二十一)——请求处理流程

Yii2请求处理流程: 首先:项目路径/web/index.php (new yii\web\Application($config))->run();//根据配置文件创建App实例,先实例化yii\web\Application(),然后调用run()方法 该语句可分为两步: $application = new yii\web\Application($config);//实例化app $application->run();//调用run()方法 $config 为配置文件,通过 req