1

我正在编写一个 Symfony 4 应用程序。它的核心是一个包含一些嵌套子流程的流程。一般来说,这个想法,如何处理它看起来像这样:

有一些processes(主要流程及其子流程的层次结构)。每个进程都有一组states。每个进程都有一组 allowed events。

这种机制的门面是SystemEventHander. 它注册处理的进程,分析传入的请求,并为当前事件找到并执行适当的处​​理程序。

services.yaml

# events
App\Process\SystemEventHandlerInterface:
    class: 'App\Process\SystemEventHandler'
    tags:
        - { name: kernel.event_listener, event: general:user_message_received, method: handle }
        - { name: kernel.event_listener, event: process_a:foo, method: handle }
        - { name: kernel.event_listener, event: process_a.process_b:foo, method: handle }
        - { name: kernel.event_listener, event: process_a.process_c:bar, method: handle }
        - { name: kernel.event_listener, event: process_a.process_d:baz, method: handle }
        - { name: kernel.event_listener, event: process_a.process_d.process_e:buz, method: handle }

所以我的所有自定义事件最初只由一个处理程序处理:SystemEventHandler().

问题是,对于每一个事件,我必须编写几乎相同的行:

- { name: kernel.event_listener, event: process_name:event_name, method: handle }

只有process_name:event_name变化,其余的都是静态的。

Image 我有很多活动——30 个?50?100?我怎样才能避免为每一行显式地写一个新行?

4

0 回答 0