新在Symfoob娱乐下载ny 4.1:调用事件监听器
2018年1月26日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。ob娱乐下载其中一些信息可能是过时了。阅读最近的Symfony文档ob娱乐下载。
提供的
罗兰Franssen
在# 25275。
在Syob娱乐下载mfony 4应用建议管理事件使用用户而不是听众,因为只有用户在使用自动配置服务自动配置。
然而,对于那些仍想使用监听器,在Symfony 4.1我们改进他们支持ob娱乐下载__invoke ()
PHP魔术方法。考虑以下服务配置:
1 2 3
#配置/ services.yamlApp \ EventListener \ UserListener:标签:[{名称:kernel.event_listener,事件:kernel.request})
当kernel.event_listener
标签不定义方法
属性,Symfony执ob娱乐下载行方法的名字在
+ CamelCased事件名称。在这个例子中,onKernelRequest ()
方法将被执行。在Syob娱乐下载mfony 4.1中,如果事件监听器类没有定义方法,Symfony查找__invoke ()
如果找到了方法并执行它。
在实践中,在Symfony 4.ob娱乐下载1UserListener
类可能是简单的:
1 2 3 4 5 6 7 8 9
使用ob娱乐下载\组件\HttpKernel\事件\GetResponseEvent;类UserListener{公共函数__invoke(GetResponseEvent美元事件){/ /……}}
与此相关,我们默默地支持__invoke ()
其他部分的框架,例如TemplateController
:
1 2 3 4 5 6 7 8 9
#配置/ routes.yaml指数:路径:/#在Symfonyob娱乐下载 4.1之前必须添加templateAction方法名称控制器:控ob娱乐下载制器的Symfony \包\ FrameworkBundle \ \ TemplateController:: templateAction”4.1 #从Symfony, Tob娱乐下载emplateController包括__invoke()方法控制器:控ob娱乐下载制器的Symfony \包\ FrameworkBundle \ \ TemplateController”默认值:模板:“homepage.html.twig”
发表在#生活在边缘
评论
很好的新闻,最后,我们可欧宝平台是合法的吗以创建一个监听器可以听单个事件没有创建一个“对”的方法。
问题,这种方法适用于用户吗?
问题,这种方法适用于用户吗?
问题,这种方法适用于用户吗?
技术不错,但对于一个用户(你的类表示这事件侦听器)所以你需要指定您想调用的方法。不确定如果__invoke自动使用。最好看看代码确定:)
技术不错,但对于一个用户(你的类表示这事件侦听器)所以你需要指定您想调用的方法。不确定如果__invoke自动使用。最好看看代码确定:)
问题,这种方法适用于用户吗?
是的,这将工作:
公共静态getSubscribedEvents()函数
{
返回(
KernelEvents:请求= > ' __invoke”
];
}
但恕我直言你应该给你的方法更有意义的名称。
是的,这将工作:
公共静态getSubscribedEvents()函数
{
返回(
KernelEvents:请求= > ' __invoke”
];
}
但恕我直言你应该给你的方法更有意义的名称。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now