首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Yii2触发事件

使用Yii2触发事件
EN

Stack Overflow用户
提问于 2018-08-21 01:14:30
回答 1查看 68关注 0票数 0

我正在尝试理解如何将事件处理程序应用于Yii2应用程序中的事件。通过阅读文档,我相信我可以使用它来触发一个事件。

$this->trigger('failedTransaction');

然而,我试图理解在触发failedTransaction事件时,我将用于运行的处理程序放在哪里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-21 03:31:00

您可以使用class-level events来实现这一点。你可以在你的app bootstrap中(可能在app初始化之前的config中)附加这个:

Event::on(
    MyClass::class, 
    MyClass::FAILED_TRANSACTION_EVENT, 
    [MyEventHandlerClass::class, 'handle']
);

然后,每当MyClass调用$this->trigger(self::FAILED_TRANSACTION_EVENT);时,都会调用MyEventHandlerClass::handle()来处理此事件。

您也可以使用global events。在您的配置中:

'on failedTransaction' => [MyEventHandlerClass::class, 'handle'],

并通过Yii::$app->trigger('failedTransaction')触发事件-这也将调用MyEventHandlerClass::handle()来处理此事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51935608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档