mahadazad/event-manager

此包的最新版本(dev-master)没有可用的许可证信息。

dev-master 2014-12-10 16:03 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:19:50 UTC


README

这是一个易于使用的事件管理库。您可以使用它来创建基于事件的应用程序。

安装

使用composer安装库,在您的composer.json中

{
    "require": {
        "mahadazad/event-manager": "dev-master"
    }
}

或者运行

php composer.phar require "mahadazad/event-manager":"dev-master"

如何使用?

简单地实例化EventManager对象

use EventManager\EventManager;

$em = new EventManager();

// $em->attach(event_name, callable, priority);

$handler1 = $em->attach('say.hello', function () {
    return 'hello';
}, 10);

$handler2 = $em->attach('say.hello', function () {
    return 'hello!!!';
}, 200);

$handler3 = $em->attach('say.hello', function () {
    return 'heeellloooo';
}, 300);

// remove an existing handler
$em->detach($handler3);

// $em->trigger(eventname); returns \EventManager\Response\ResponseCollection
$response = $em->trigger('say.hello');

/*
print_r($response->toArray());
    outputs:
        array(
          0 => hello!!!
          1 => hello
        )
        
can be traversed:
foreach ($response as $r) {
    echo $r->toResult();
}

you can get response of particular handler:
$hander1Results = $response->getCommandResult($handler2); // returns \EventManager\Response\ResponseCollection
*/