从 Controller 内部获取根应用程序目录的最佳方法是什么?是否可以将其从 Controller 外部获取?
现在我通过将它(从参数)作为参数传递给服务来获取它,如下所示:
services:
sr_processor:
class: Pro\Processor
arguments: [%kernel.root_dir%]
是否有更好、更简单的方法在 Symfony2 中获取此信息?
最佳答案
2018 年 10 月 21 日更新:
截至本周,getRootDir()
已被弃用。请按照 Muzaraf Ali 评论部分的建议改用 getProjectDir()
。
——
使用这个:
$this->get('kernel')->getRootDir();
如果您想要网络根:
$this->get('kernel')->getRootDir() . '/../web' . $this->getRequest()->getBasePath();
这将在 Controller 操作方法中起作用...
编辑: 至于服务,我认为你这样做的方式尽可能干净,尽管我会传递完整的内核服务作为参数......但这也可以解决问题......
关于php - 如何获取Symfony2应用程序的根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215753/