定制 poirot/events 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

poirot/events

Composer 安装命令:

composer require poirot/events

包简介

Event Manager For Event-Driven Architectures.

README 文档

README

Easy To Track And Structured Event Management System.

$event = new BaseEvent('event-name');

// Attach Listener with "listener-name" at priority 100
$event->attachListener(new FunctorListener(function(){
    return ['template' => 'Hello %s, welcome!'];
}), 'listener-name', 100);
// ....................................................

// build an existence event with array config
(new EventBuilder([
    'listeners' => [
        'other-listener-name' => [
            'priority' => 90,
            'listener' => new FunctorListener(function($template = null) {
                $result = sprintf($template, 'Dear Developer');

                return ['result' => $result];
            }),
        ],
    ],
    'then' => function($event) {
        // Hello Dear Developer, welcome!
        echo $event->collector()->getResult();
    }
]))->build($event);
// ..........................................

$emitter = $event->emit(); // Hello Dear Developer, welcome!

## get data from collector
echo "<p>template:{$emitter->collector()->getTemplate()}</p>";
echo "<p>output:{$emitter->collector()->getResult()}</p>";

$collector = $emitter->collector();
$emitter->then(function($event) use ($collector) {
    if ($event->collector() === $collector)
        echo '<p>You see this, because collector has emitted data.</p>';
});

if ($collector === $event->collector())
    // this line never show, because event collector has only default values
    die('Collector is empty');

die();

统计信息

  • 总下载量: 300
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2015-05-14