refinery29 / league-lazy-event
为league/event提供LazyListener,允许延迟获取实际监听器。
该包的规范仓库似乎已消失,因此该包已被冻结。
0.3.0
2017-03-06 17:09 UTC
Requires
- php: ^5.5 || ^7.0
- league/event: ^2.1.2
- psr/container: ^1.0.0
Requires (Dev)
- codeclimate/php-test-reporter: 0.4.4
- phpunit/phpunit: ^4.8.35
- refinery29/php-cs-fixer-config: 0.6.7
This package is not auto-updated.
Last update: 2024-06-08 17:18:33 UTC
README
此仓库提供了一个用于league/event
的LazyListener
,允许从组合容器中延迟获取实际监听器。
安装
运行
$ composer require refinery29/league-lazy-event
用法
将实际监听器作为服务注册到容器中
use League\Container; $container = new Container(); $container->share(ExpensiveListener::class, function () { /* * here, some heavy lifting occurs that creates the actual listener, * which should implement the ListenerInterface */ return $listener; });
然后注册一个LazyListener
,组合别名和容器
use League\Event\Emitter; use Refinery29\Event\LazyListener; $emitter->addListener(ContentChangedEvent::class, LazyListener::fromAlias( ExpensiveListener::class, $container ));
按需触发事件!
$emitter->emit(ContentChangedEvent::class, new ContentChangedEvent( $url, new DateTimeImmutable() );
👍 监听器仅在处理事件时从容器中获取。
贡献
请查看CONTRIBUTING.md
。
行为准则
请查看CONDUCT.md
。
许可证
本软件包使用MIT许可证授权。