Open Web Analytics/事件处理器
Open Web Analytics | Open Web Analytics基本使用 | 站点追踪以及相关应用程序 | Open Web Analytics框架|Open Web Analytics扩展 |
Event Handlers,事件处理程序,是一些特殊的类,允许开发者通过将其挂钩到OWA框架和模块产生的各种事件来扩展OWA的功能。
事件处理程序本质上来说允许在你的模块中包含有一个函数或者类来监听事件。事件处理程序典型的应用是用来将事件中包含的信息记录到OWA的数据库,或者可以执行类似于发送邮件或者产生一个不同类型的新的事件的动作。
OWA的事件处理系统利用了“observer(观察者)”设计模式,允许不止一个处理程序来处理事件,也允许处理程序监听不止一种类型的事件。
注册事件处理程序[ ]
事件处理程序是通过模块来登记的,来监听特定类型的事件。
可以在你的模块构建函数中使用registerHandler方法来登记注册一个市静安处理程序:
$this->registerEventHandler('install_complete', $someobject, 'installCompleteHandler');
这一行代码的意思是,注册一个新的处理程序,用来监听“install_complete”这一种类型的事件,第二个函数参数是包含了事件处理程序代码的对象,而第三个参数是被调用的对象的名称。
当installCompleteHandler方法被调用时,它将被传送一个owa_event对象来进行操作。
事件调度[ ]
OWA利用observer模式来促进这些安装的模块之间的交流。
类可以产生事件,并且可以使用OWA的事件调度系统来“提醒”其他希望过滤他们或者执行动作的模块。
访问事件调度
为了调度事件,首先你必须访问事件调度类,这可以通过使用coreAPI方法getEventDispatcher来实现:
$dispatcher = owa_coreAPI::getEventDispatch();
新建事件[ ]
某些时候由于要处理一个事件,你希望创建另一个事件。出现这种情况,我们可以通过创建一个新的owa_event对象和设置事件类型及属性来实现,例如:
$dispatch = coreAPI::getEventDispatch(); $event = $dispatch->eventFactory(); $event->set('name, 'value');
调度一个事件[ ]
一旦某个事件被创建,你就可以使用不同的方法来调度它。
Notify
提醒,notify方法将会将这个事件分配给所有的事件处理程序(以这些处理程序的注册顺序来分配),例如:
$dispatch = coreAPI::getEventDispatch(); $event = $dispatch->eventFactory(); $event->setEventType('foo'); $event->set('name', 'value'); $dispatch->notify($event);
Async Notify
异步提醒,异步提醒一般使用asynNotify方法。该方法会将事件分配给那些异步事件队列。所以,这种方法还需要在OWA配置中将event queueing模式开启,如果该模式没有开启的话,那么将会返回到使用notify方法。
这是一种被高度鼓励使用的方法,来调度这些需要写入数据库的追踪的事件。
例如:
$dispatch = coreAPI::getEventDispatch(); $dispatch->asyncNotify($event_obj);
参考来源[ ]
Open Web Analytics使用手册导航 | ||||||||
---|---|---|---|---|---|---|---|---|
|