bugadani/event_source

一个易于创建事件源的库

1.0 2016-02-03 12:14 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:36 UTC


README

EventSource是一个简单的PHP 5.4+库,用于创建事件源对象。

用法

EventSource特性

当您希望将某个类作为事件源时,只需在类中使用EventSource特性并调用初始化方法即可。

class SomeClass {
    use EventSource\EventSource;

    public function __construct() {
        //initialize defines the events that can be used
        $this->initialize(['fooEvent', 'barEvent']);
    }

    public function someMethod() {
        $this->raise('fooEvent', $someOptionalParameter);
    }
}

您可以使用on($eventName, $callback)方法定义事件处理器,当触发指定事件时会通知这些处理器。

$someObject = new SomeClass();
$someObject->on('fooEvent', function($someParameter = null) {
    //do something
});

您也可以使用remove($eventName, $callback)方法移除事件处理器。

事件类

另外,您可以选择手动创建Event对象,这些对象由EventSource用于管理事件处理器。Event类有以下方法:

  • on($callback) - 注册一个新回调以处理事件
  • remove($callback) - 移除之前注册的回调
  • raise(optional $parameter) - 触发事件

使用Event类的一个缺点是,raise()是一个公共方法,因此任何外部代码都可能触发事件。

安装

使用Composer

"require": {
    "bugadani/event_source": "1.*"
}