假设我的Symfony 2项目中有三个捆绑包,即AcmeBundle,LibraryBundle和LibraryAppBundle。是否有任何机制来识别正在执行的捆绑包。或者换句话说,请求是针对哪个包发出的?
答案 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');