refinery29/league-lazy-event

为league/event提供LazyListener,允许延迟获取实际监听器。

该包的规范仓库似乎已消失,因此该包已被冻结。

0.3.0 2017-03-06 17:09 UTC

This package is not auto-updated.

Last update: 2024-06-08 17:18:33 UTC


README

Build Status Code Climate Test Coverage Latest Stable Version Total Downloads

此仓库提供了一个用于league/eventLazyListener,允许从组合容器中延迟获取实际监听器。

安装

运行

$ 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许可证授权。