frankdejonge / league-event-bundle

league/event 的 Symfony 扩展包。

1.0.1 2016-03-11 12:29 UTC

This package is auto-updated.

Last update: 2024-09-06 08:43:55 UTC


README

安装

composer require frankdejonge/league-event-bundle

注册扩展包

$bundles = array(
    ...
    new FrankDeJonge\LeagueEventBundle\LeagueEventBundle(),
    ...
);

使用方法

默认情况下,一个发射器已注册为 league_event.emitter ID。

$emitter = $container->get('league_event.emitter');

可以通过标记为 league_event.emitter 来向发射器添加事件监听器。

---
services:
    my_listener:
        class: Some\Listener
        tags:
            - name: league_event.listener
              event: event.name

高级使用

注册具有自定义监听器绑定的自定义发射器

---
services:
    my_emitter:
        class: League\Event\Emitter
        tags:
            - name: league_event.emitter
              listener_tag: my_emitter.listener
    my_listener:
        class: My\Awesome\Listener
        tags:
            - name: my_emitter.listener
              event: My\Awesome\DomainEvent

也可以设置优先级

---
services:
    my_listener:
        class: My\Awesome\Listener
        tags:
            - name: league_event.listener
              event: My\Awesome\DomainEvent
              priority: 9001