在onKernelController
方法中,我得到了一个非常大的对象作为参数传递 - 我可以猜测它是如何影响我的应用程序的性能的。
如何检查控制器是否在事件监听器类中实现了一个接口?
public function onKernelController(FilterControllerEvent $event)
{
$controller = $event -> getController()[0];
if ($controller instanceof IInterface) // doesn't work
{
return false;
}
}
答案 0 :(得分:0)
如果您不想检查对象的类是否实现了接口,instanceof必须正常工作。
答案 1 :(得分:0)
在php对象中,通过引用传递,实际上是通过值传递,但变量保存对象引用点。因此,如果事件监听器之后已经通过依赖注入实例化,那么你不应该把它传递给事件监听器,我的意思是当行动起作用时。所以你不应该担心。
答案 2 :(得分:0)
我遇到了与此相关的问题,我的解决方案是:
gdb
有时 - 我无法记住 - method" getController"正在返回一个数组,第二个条目是动作。