如何自定义方法行为不使用继承

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何自定义方法行为不使用继承

在方法调用之前或之后执行某些操作

如果你想在方法调用之前或之后做一些事情,你可以在方法的开始或结束分别分派一个事件:

12 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在方法执行之后。每个事件都使用自定义Event类向两个事件的侦听器传递信息。这些事件类需要由您创建,并且在本例中允许使用变量$ foo美元的酒吧而且美元受潮湿腐烂由侦听器检索和设置。

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

1 2 3 4 5 6 7
公共函数onFooPostSend(FilterSendReturnValue事件受潮湿腐烂事件->getReturnValue ();//修改原始的“$ret”值事件->setReturnValue (受潮湿腐烂);}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。