Symfony2:在每个新控制器中重复代码的解决方案


Symfony2: Solution for repeating a code within each new controller

我有一段代码在DefaultController.php的每个控制器中重复,这让我很恼火。我可以把它放在某个地方一次,而不是在我添加的每个新控制器中复制过去吗?

如果代码应该在每个控制器操作的开头运行,我建议为在代码调度到控制器之前触发的 KernelEvent kernel.controller Event 编写一个处理程序。

如果代码应该在操作代码中的某个位置运行,则可以创建自己的事件并为其创建处理程序。您可以将控制器和所有需要的数据追加到自定义事件对象。

我有完全相同的东西。

为了管理控制器的每个操作中的权限,我正在调用一个服务

$this->permissions =$this->get('vendor.permissions')->checkPermission('BundleName','Profil','select',$this);