通用事件对象

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.0,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

通用事件对象

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

GenericEvent为方便那些希望在整个应用程序中只使用一个事件对象的人而提供。它适用于直接开箱即用的大多数目的,因为它遵循标准的观察器模式,其中事件对象封装了一个事件“主题”,但添加了可选的额外参数。

GenericEvent除了基类之外,还添加了一些其他方法事件

GenericEvent还实现了ArrayAccess在事件参数上,这使得传递关于事件主题的额外参数非常方便。

下面的例子展示了一些用例,以提供灵活性的总体概念。这些示例假设事件侦听器已添加到调度程序。

传递主题:

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

属性传递和处理参数ArrayAccessAPI来访问事件参数:

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

过滤数据:

12 3 4 5 6 7 8 9 10 11 12
使用欧宝娱乐app下载地址组件EventDispatcherGenericEvent事件GenericEvent (主题, (“数据”= >“Foo”]);调度程序->调度(事件“foo”);FooListener公共函数过滤器(GenericEvent事件事件“数据”] = strtolower(事件“数据”]);}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。