oxwall OW_EventManager 绑定并触发
oxwall OW_EventManager bind and trigger
我正在使用 oxwall
,我想知道 EventManager
如何在此平台上使用一个简单的示例来注册特定事件的新方法,以触发事件并将其绑定到进程。
这里是触发事件并将其绑定到流程的示例。我的格式有点糟糕...
假设您正在创建一个用于创建用户帐户的插件。
/**
* 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 );
}
绑定事件到监听器
您应该从您的事件处理程序 class 或您的插件 init.php 文件中执行此部分。
/**
*
* 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 文件初始化事件处理程序。
$eventHandler = new PLUGINKEY_CLASS_EventHandler();
$eventHandler->init();
我正在使用 oxwall
,我想知道 EventManager
如何在此平台上使用一个简单的示例来注册特定事件的新方法,以触发事件并将其绑定到进程。
这里是触发事件并将其绑定到流程的示例。我的格式有点糟糕...
假设您正在创建一个用于创建用户帐户的插件。
/**
* 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 );
}
绑定事件到监听器
您应该从您的事件处理程序 class 或您的插件 init.php 文件中执行此部分。
/**
*
* 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 文件初始化事件处理程序。
$eventHandler = new PLUGINKEY_CLASS_EventHandler();
$eventHandler->init();