如何识别Symfony 2中正在执行的捆绑包

时间:2014-08-22 05:18:35

标签: symfony

假设我的Symfony 2项目中有三个捆绑包,即AcmeBundle,LibraryBundle和LibraryAppBundle。是否有任何机制来识别正在执行的捆绑包。或者换句话说,请求是针对哪个包发出的?

1 个答案:

答案 0 :(得分:0)

您可以查看哪条路线匹配

 tail -f app/logs/dev.log | grep "Matched route"

然后您提出请求并查看哪条路线匹配,例如:

"standard_homepage" (parameters: "_controller":"standard\StandardBundle\Controller\DefaultController::indexAction", "path":"", "_route": "standard_homepage")

您在控制器路径中看到,调用了哪个捆绑包,并且您可以检查操作/方法以调用其他捆绑包,您也可以使用loggin跟踪请求的方式

在控制器中你可以得到如下记录器:

$logger = $this->get("logger");

您可以记录以下信息消息:

$logger->info("my log message")

更新:

在Controller中

,您可以获得包名称:

echo $this->getRequest()->attributes->get('_template')->get('bundle');

你可以得到像这样的控制名称:

echo $this->getRequest()->attributes->get('_template')->get('controller');

你可以采取以下行动:

echo $this->getRequest()->attributes->get('_template')->get('action');
上面的

似乎只适用于@View注释,你可以获取控制器名称并提取它的包名称

$this->getRequest()->attributes->get('_controller');