Yii2事件

namespace app\components;

use yii\base\Component;
use yii\base\Event;

class MessageEvent extends Event
{
    public $message;
}

class Mailer extends Component
{
    const EVENT_MESSAGE_SENT = ‘messageSent‘;

    public function send($message)
    {
        // ...发送 $message 的逻辑...

        $event = new MessageEvent;
        $event->message = $message;
        $this->trigger(self::EVENT_MESSAGE_SENT, $event);
    }
}

个人理解:Yii2中的事件很像thinkphp中的钩子

时间: 2024-07-29 23:18:15

Yii2事件的相关文章

yii2学习——事件(event)

最近在学习Yii2,这里记录一下学习yii2的事件,一个简单的事件实例: 包括了一个对象.一个静态对象.一个匿名函数. app\controllers\siteController /**      * 事件处理      */     public function actionEvent(){         echo '这是事件处理<br/>';                  $person = new Person();                  $this->on(

Yii2的深入学习--事件

我们先来看下事件在 Yii2 中的使用,如下内容摘自 Yii2中文文档 事件可以将自定义代码“注入”到现有代码中的特定执行点.附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行.例如,邮件程序对象成功发出消息时可触发 messageSent 事件.如想追踪成功发送的消息,可以附加相应追踪代码到 messageSent 事件. Yii 引入了名为 [[yii\base\Component]] 的基类以支持事件.如果一个类需要触发事件就应该继承 [[yii\base\Componen

Yii2 静态方法触发事件如何实现?

Yii框架是php中最常用的开发框架之一,本文和大家分享的就是Yii2框架的静态方法中,触发事件是如何实现的,希望本文的分享对大家有所帮助. 在ActiveRecord的init中写了一个简单的事件触发: PHP代码 public function init(){ $event = new XxxEvent(); $this->on(self::EVENT_AFTER_UPDATE,[$event,'doSomeThing']); parent::init(); } 就是这么简单,然后在程序中有

Yii2.0 事件的简单用法

事件的绑定,像js那样,可以通过on方法定义或者说是绑定一个事件.在yii2中,事件的绑定是通过yii\base\Component 的on方法进行操作的,很显然,同js操作一样,我们在定义事件的同时,需要为其绑定一个回调函数. 看下例子,先写下一个控制器中,用on绑定事件,然后在方法里面用triggle调用 namespace backend\controllers; use yii\web\Controller; class EventController extends Controlle

Yii2之事件

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

yii2中的事件和行为

Event 事件 事件是为了解耦... 注册事件 使用"on add"添加属性,注册事件 使用on方法注册事件. 第三个参数$data是监听函数使用的参数, 第四个$append参数设置为false则把改事件的方法给添加到最前面,会先触发 事件种类: 匿名函数:function($event){} 对象方法:[$object,"handleAdd"] 静态类方法:["Page","handleAdd"] 全局函数:"

YII2依赖注入和事件的使用

YII2的核心就是依赖注入和事件处理,同Spring的IOC和AOP功能基本是一样的,YII的依赖注入可以使得我们使用对象的时候,YII的容器帮助我们创建大大提高了效率,并且,一部分又提高的内存的使用率,如果我们自己控制对象,可能过程中会浪费不必要的内容空间,YII的事件,就好比AOP,AOP我做java开发的时候最多是对日志的控制,和事物的控制,还有权限.YII的事件同样可以实现这些. eg:  IOC又称DI(依赖注入) 首先:我在frontend文件夹下面创建了service文件夹来存放创

Yii2 如何使用事件

原文地址:http://www.fancyecommerce.com/2016/04/29/yii2-%E4%BD%BF%E7%94%A8event-1-%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E4%BA%8B%E4%BB%B6/ 1.首先需要 定义 事件传递的数据格式类: <?php namespace myapp\frontend\code\ECM\Customer\events; use Yii; use yii\base\Model;

yii2.0 事件

事件(Event) 使用事件,可以在特定的时点,触发执行预先设定的一段代码,事件既是代码解耦的一种方式,也是设计业务流程的一种模式.现代软件中,事件无处不在,比如,你发了个微博,触发了一个事件,导致关注你的人,看到了你新发出来的内容.对于事件而言,有这么几个要素: 这是一个什么事件?一个软件系统里,有诸多事件,发布新微博是事件,删除微博也是一种事件. 谁触发了事件?你发的微博,就是你触发的事件. 谁负责监听这个事件?或者谁能知道这个事件发生了?服务器上处理用户注册的模块,肯定不会收到你发出新微博