romeoz/rock-events

PHP Pub/Sub 的简单实现

0.11.0 2015-11-06 03:06 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:35:33 UTC


README

Latest Stable Version Total Downloads Build Status HHVM Status Coverage Status License

特性

  • 处理器可以是闭包、实例和静态类
  • 独立的模块/组件,用于 Rock 框架

安装

从命令行

composer require romeoz/rock-events

在你的 composer.json 文件中

{
    "require": {
        "romeoz/rock-events": "*"
    }
}

快速入门

use rock\events\Event;

class Foo 
{
    public $str = 'Rock!';
}

$object = new Foo();
$eventName = 'onAfter';
$handler = function (Event $event) {
    echo "Hello {$event->owner->str}"; 
};

Event::on($object, $eventName, $handler);

Event::trigger($object,  'onAfter'); // output: Hello Rock!

文档

####on(string|object $class, string $name, callable $handler)

订阅事件。

设置处理器的示例

$handler = function (Event $event) { 
    echo "Hello Rock!"; 
};
Event::on(new Foo, 'onAfter', $handler);

选项

  • function (Event $event) { ... }
  • [new Foo, 'method']
  • ['Foo', 'static_method']

####trigger(string|object $class, string $name, Event $event = null)

发布事件。

Event::trigger(new Foo,  'onEvent'); 

// or

Event::trigger('test\Foo',  'onEvent');

####off(string|object $class, string $name, callable $handler = null)

断开事件。

$handler = 
    function (Event $event) {
        echo 'Hello Rock!'
    };
$instance =  new Foo;
Event::on($instance, 'onAfter', $handler);

Event::off($instance, 'onAfter');

要求

  • PHP 5.4+

许可证

Rock Events 是开源软件,受 MIT 许可证 授权。