通用事件对象

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

通用事件对象

基地事件类提供的EventDispatcher组件是故意稀疏允许创建API使用OOP特定事件对象继承。这允许优雅的和可读的代码在复杂的应用程序。

GenericEvent可以方便那些希望在他们的应用程序使用一个事件对象。适用于大多数场合的盒子,因为它遵循标准观察者模式的事件对象封装了一个事件“主题”,但添加可选的额外的参数。

GenericEvent添加一些更多的方法除了基类事件

GenericEvent还实现了ArrayAccess在事件参数使得它非常方便的通过额外的参数对于活动主题。

下面的例子展示用例给一般的灵活性。示例假设事件侦听器被添加到调度员。

通过主题:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
使用欧宝娱乐app下载地址\组件\EventDispatcher\GenericEvent;美元事件=GenericEvent (美元主题);美元调度程序- >调度(“foo”,美元事件);FooListener{公共函数处理程序(GenericEvent美元事件){如果(美元事件- >getSubject ()运算符Foo) {/ /……}}}

传递和处理参数使用ArrayAccessAPI来访问事件参数:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用欧宝娱乐app下载地址\组件\EventDispatcher\GenericEvent;美元事件=GenericEvent (美元主题,(“类型”= >“foo”,“计数器”= >0]);美元调度程序- >调度(“foo”,美元事件);FooListener{公共函数处理程序(GenericEvent美元事件){如果(收取(美元事件(“类型”)& &美元事件(“类型”)= = =“foo”){/ /……做某事}美元事件(“计数器”+ +;}}

过滤数据:

1 2 3 4 5 6 7 8 9 10 11 12
使用欧宝娱乐app下载地址\组件\EventDispatcher\GenericEvent;美元事件=GenericEvent (美元主题,(“数据”= >“Foo”]);美元调度程序- >调度(“foo”,美元事件);FooListener{公共函数过滤器(GenericEvent美元事件){美元事件(“数据”]=函数美元事件(“数据”]);}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。