alexanderc / open-fw-eventer
此包已被弃用,不再维护。没有建议的替代包。
OpenFW框架中使用的事件管理器
v1.0.0-RC2
2013-11-15 15:58 UTC
This package is not auto-updated.
Last update: 2022-02-01 12:28:19 UTC
README
这是一个由OpenFW框架使用的库。
Eventer- is an event manager that makes your life easier when using event driven development.
There are a lot of libraries doing this, but not that beautifully ;)
优点
- 无依赖项
- 易于使用
- RESTful API
- 使用最新的PHP特性
- 代码注释详尽
- ...更多...
要求
- PHP 5.5及以上
- awesomeness
安装
-
使用composer(通过packagist)
"alexanderc/open-fw-eventer": "dev-master"
-
...或者简单地使用您的自动加载器(PSR-0兼容)
示例
<?php use OpenFW\Events\Eventer; use OpenFW\Events\Event; use OpenFW\Events\Matchers\BinaryMatcher; use OpenFW\Events\Matchers\RegexMatcher; use OpenFW\Events\Traits\SimplifiedApiTrait; $eventer = new Eventer(); $events = [ 'foo.bar.event', 'foo.baz.smth', 'foo.habra.event', 'smth.habra.post' ]; foreach($events as $event) { $eventer->register($event); } echo "Adding some listeners\n"; $eventer->addListener(new BinaryMatcher('foo.habra.event'), function(Event $event) { echo sprintf("This will be called on %s event only\n", $event); }); $eventer->addListener(new RegexMatcher('.+\.habra\..+'), function(Event $event) { echo sprintf("Wow, calling habra events! (%s)\n", $event); }); $eventer->addOnceListener(new RegexMatcher('foo\..+\.event'), function(Event $event) { echo sprintf("This event is one of [foo.bar.event, foo.habra.event] -> %s. ", $event), "Also this is thrown only once!\n"; }); echo "Trigger all events once using binary matcher\n"; foreach($events as $event) { $eventer->trigger($event, ['some', 'data', 'provided', 'to', 'each', 'listener']); } echo "Trigger all events that matches against an RegexMatcher\n"; $eventer->triggerUsingMatcher( new RegexMatcher('foo\..+\.event'), ['some', 'data', 'provided', 'to', 'each', 'listener'] ); // too much words??? check SimplifiedApiTrait...
凭证
OpenFW::Eventer php框架。
版权所有 (C) 2013 AlexanderC