问题如下:
如何从控制器内部(或出于此原因从任何其他位置)获取Symfony2中web目录的服务器路径
我已经找到了什么(也可以在这里搜索):
这在关于Doctrine文件处理的食谱文章中得到了建议
$path = __DIR__ . '/../../../../web';
通过搜索找到,只能从控制器内部使用(或注入内核的服务):
$path = $this->get('kernel')->getRootDir() . '/../web';
那么,有没有绝对没有办法至少获得路径的“web”部分呢?例如,如果我决定将其重命名或移动或其他什么,该怎么办?
在第一个symfony中,一切都很简单,我可以通过调用静态sfConfig:: get ()方法从代码中的任何位置获得所需的所有内容。
发布于 2012-02-14 03:32:37
发布于 2014-01-16 00:39:31
要从控制器外部访问根目录,只需在服务配置中将%kernel.root_dir%
作为参数注入即可。
service_name:
class: Namespace\Bundle\etc
arguments: ['%kernel.root_dir%']
然后,您可以在类构造函数中获取web根:
public function __construct($rootDir)
{
$this->webRoot = realpath($rootDir . '/../web');
}
发布于 2016-09-21 02:34:59
您正在使用Symfony,请考虑“依赖注入”^^
在我所有的SF项目中,我都使用parameters.yml:
web_dir: "%kernel.root_dir%/../web"
所以我可以在控制器中安全地使用这个参数:
$this->getParameter('web_dir');
https://stackoverflow.com/questions/9265788
复制相似问题