如何定制一个没有使用继承的方法行为吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何定制一个没有使用继承的方法行为吗
做一个方法调用之前或之后的事
之前如果你想做点什么,或者只是调用方法后,你可以派遣一个事件分别在开始或者结束的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
类喷火{/ /……公共函数发送(美元喷火,美元酒吧){/ /前做一些方法美元事件=新FilterBeforeSendEvent (美元喷火,美元酒吧);美元这- >调度程序- >调度(“foo.pre_send”,美元事件);/ / foo和bar从事件美元,他们可能会被修改美元喷火=美元事件- >getFoo ();美元酒吧=美元事件- >getBar ();/ /这里的真正的方法实现美元returnValue=……;/ /后做一些方法美元事件=新FilterSendReturnValue (美元returnValue);美元这- >调度程序- >调度(“foo.post_send”,美元事件);返回美元事件- >getReturnValue ();}}
在这个例子中,扔两个事件:foo.pre_send
在方法执行之前,和foo.post_send
后执行的方法。每个使用一个定制事件类信息沟通这两个事件的侦听器。这些事件类需要由你和应该允许,在本例中,变量$ foo
,美元的酒吧
和returnValue美元
设定的检索和听众。
例如,假设FilterSendReturnValue
有一个setReturnValue ()
方法,一个侦听器可能看起来像这样:
1 2 3 4 5 6 7
公共函数onFooPostSend(FilterSendReturnValue美元事件){美元returnValue=美元事件- >getReturnValue ();/ /修改初始的“returnValue“美元价值美元事件- >setReturnValue (美元returnValue);}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。