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

Php Symfony2:在每个新控制器内重复代码的解决方案,php,symfony,controller,Php,Symfony,Controller,我有一段代码在DefaultController.php中的每个控制器中重复,这让我非常恼火。我可以将它放在某个地方,而不是在我添加的每个新控制器中复制过去吗?如果代码应该在每个控制器操作的开头运行,我建议为内核.Controller事件编写一个处理程序,该事件在将代码分派到控制器之前触发 如果代码应该在操作代码中的某个地方运行,您可以为它创建一个处理程序。您可以将控制器和所有需要的数据附加到自定义事件对象。我有完全相同的东西 为了在控制器的每个操作中管理权限,我调用了一个服务 $this-&g

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

如果代码应该在每个控制器操作的开头运行,我建议为
内核.Controller
事件编写一个处理程序,该事件在将代码分派到控制器之前触发


如果代码应该在操作代码中的某个地方运行,您可以为它创建一个处理程序。您可以将控制器和所有需要的数据附加到自定义事件对象。

我有完全相同的东西

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

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

我可能不理解这个问题,但如果您只是试图避免复制/粘贴代码,那么让DefaultController扩展Symfony控制器,然后让您的单个控制器扩展DefaultController。但是我猜(正如@chiborg所说)你真的想要执行一些重复的代码。我需要的是获取会话并将其发送到模板,这是每个控制器中的重复代码:
$session=$this->get('session')$foo=$session->get('uid');返回$this->render('template',array('session'=>$foo))除非有其他方法获取会话并将其发送到模板:)。谢谢。在这种情况下,树枝延伸可能是更好的方式。看这个问题:或者你可以用
{{app.session.uid}}
看这里:太好了,我现在明白了。实际上,我有twig(page.html.twig)和php(page.html.php)页面,请问如何在php文件中调用session对象?