通用事件对象
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
通用事件对象
基地事件类提供的EventDispatcher组件是故意稀疏允许创建API使用OOP特定事件对象继承。这允许优雅的和可读的代码在复杂的应用程序。
的GenericEvent可以方便那些希望在他们的应用程序使用一个事件对象。适用于大多数场合的盒子,因为它遵循标准观察者模式的事件对象封装了一个事件“主题”,但添加可选的额外的参数。
GenericEvent添加一些更多的方法除了基类事件
- __construct ():活动主题和任何参数构造函数;
- getSubject ():主题;
- setArgument ():设置一个论点的关键;
- setArguments ():设置参数数组;
- getArgument ():被关键参数;
- getArguments ():Getter所有参数;
- hasArgument ():返回true,如果参数键存在;
的GenericEvent
还实现了ArrayAccess在事件参数使得它非常方便的通过额外的参数对于活动主题。
下面的例子展示用例给一般的灵活性。示例假设事件侦听器被添加到调度员。
通过主题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
使用ob娱乐下载\组件\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
使用ob娱乐下载\组件\EventDispatcher\GenericEvent;美元事件=新GenericEvent (美元主题,(“类型”= >“foo”,“计数器”= >0]);美元调度程序- >调度(美元事件,“foo”);类FooListener{公共函数处理程序(GenericEvent美元事件){如果(收取(美元事件(“类型”)& &“foo”= = =美元事件(“类型”){/ /……做某事}美元事件(“计数器”+ +;}}
过滤数据:
1 2 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载\组件\EventDispatcher\GenericEvent;美元事件=新GenericEvent (美元主题,(“数据”= >“Foo”]);美元调度程序- >调度(美元事件,“foo”);类FooListener{公共函数过滤器(GenericEvent美元事件){美元事件(“数据”]=函数美元事件(“数据”]);}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。