powertools / event
PHP PowerTools 事件组件
dev-master / 1.0.x-dev
2016-04-07 18:07 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-18 18:03:45 UTC
README
PHPPowertools 是一个适用于 PHP >= 5.4 的 Web 应用程序框架。
PHPPowertools/Event 是 PHPPowertools 发布的第三个组件。
本组件的目的是提供一个类似 NodeJS 的 EventEmitter 和浏览器 EventTarget 的基于 PHP 的事件处理接口。
示例用法
use \PowerTools\Event_Emitter as Event_Emitter; // Define some event handlers $eventHandlers = [ 'handler1' => function($a = '', $b = '') { // var_dump($this); echo 'handler1 fired with parameters "' . $a . '" and "' . $b . '"<br />'; }, 'handler2' => function($a = '', $b = '') { // var_dump($this); echo 'handler2 fired with parameters "' . $a . '" and "' . $b . '"<br />'; }, 'handler3' => function($a = '', $b = '') { // var_dump($this); echo 'handler3 fired with parameters "' . $a . '" and "' . $b . '"<br />'; }, 'handler4' => function($a = '', $b = '') { // var_dump($this); echo 'handler4 fired with parameters "' . $a . '" and "' . $b . '"<br />'; } ]; // Create an instance of the Event_Emitter class $emitter = Event_Emitter::factory(); // Add your event handlers to your Event_Emitter instance for the 'go' event. $emitter->addListeners('go', $eventHandlers); // Emit the 'go' event, with parameters 'FOO' and 1. $emitter->emit('go', 'FOO', 1); // Remove the second event handler for the 'go' event $emitter->removeListener('go', $eventHandlers['handler2']); // Remove ALL listeners for the 'go' event $emitter->removeAllListeners('go');
支持的方法
- addListener
- addListeners (1)
- once
- removeListener
- removeListeners (1)
- removeAllListeners
- setMaxListeners
- getMaxListeners
- listeners
- emit
- listenerCount
- dispatch
- 这些方法在 NodeJS 的 EventEmitter 或浏览器的 EventTarget 中没有等效方法。