如何定制一个没有使用继承的方法行为吗

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.6,不再维护。

这个页面的更新版本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 ();/ /这里的真正的方法实现美元受潮湿腐烂=……;/ /后做一些方法美元事件=FilterSendReturnValue (美元受潮湿腐烂);美元- >调度程序- >调度(“foo.post_send”,美元事件);返回美元事件- >getReturnValue ();}}

在这个例子中,扔两个事件:foo.pre_send在方法执行之前,和foo.post_send后执行的方法。每个使用一个定制事件类信息沟通这两个事件的侦听器。这些事件类需要由你和应该允许,在本例中,变量$ foo,美元的酒吧美元受潮湿腐烂设定的检索和听众。

例如,假设FilterSendReturnValue有一个setReturnValue方法,一个侦听器可能看起来像这样:

1 2 3 4 5 6 7
公共函数onFooPostSend(FilterSendReturnValue美元事件){美元受潮湿腐烂=美元事件- >getReturnValue ();/ /修改初始的“ret的美元价值美元事件- >setReturnValue (美元受潮湿腐烂);}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。