首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oxwall OW_EventManager绑定和触发器

oxwall OW_EventManager绑定和触发器
EN

Stack Overflow用户
提问于 2018-05-22 14:40:47
回答 1查看 78关注 0票数 1

我正在使用oxwall,我想知道EventManager是如何在这个平台上注册特定事件的新方法的,我想通过一个简单的示例来触发事件并将其绑定到流程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 04:41:19

下面是一个触发事件并将其绑定到流程的示例。我的格式有点糟糕...

假设您正在创建一个用于创建用户帐户的插件。

代码语言:javascript
复制
/**
* Method to save user
*/
public function saveUser( $username, $password, $email, $accountType )
{
    $userService = BOL_UserService::getInstance();
    $user = $userService->createUser( $username, $password, $email, $accountType );

    //Set new event parameters
    $event = new OW_Event('plugin_key_custom_event_name', array(
        'userDto' => $user
    ));
    //Trigger an event for after registering user
    OW::getEventManager()->trigger($event );
}

将事件绑定到侦听器

您应该在事件处理程序类或插件init.php文件中完成这一部分。

代码语言:javascript
复制
/**
*
* Bind Event
*/
class PLUGINKEY_CLASS_EventHandler
{
    public function sendUserWelcome( OW_Event $e )
    {
         $params = $e->getParams();
         $user = $params['userDto'];

         BOL_UserService::getInstance()->sendWellcomeLetter($user);         
    }

    public function init()
    {
        //bind sendUserWelcome() method to 'plugin_key_custom_event_name' event
        OW::getEventManager()->bind('plugin_key_custom_event_name', array($this, 'sendUserWelcome'));
    }
}

最后,您可以从init.php文件初始化事件处理程序。

代码语言:javascript
复制
$eventHandler = new PLUGINKEY_CLASS_EventHandler();
$eventHandler->init();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50461328

复制
相关文章

相似问题

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