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 许可 许可。