如何获得Symfony 2应用程序的根dir?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

从控制器内部获取根目录的最佳方法是什么?有可能把它从控制器之外拿出来吗?

现在,我将它(从参数)作为参数传递给服务,如下所示:

services:

    sr_processor:
        class: Pro\Processor
        arguments: [%kernel.root_dir%]

在Symfony 2中是否有更好、更简单的方法来获取这些信息?

提问于
用户回答回答于

如果你使用此路径访问非代码项目的某些部分(例如上传目录或SQLite数据库),那么将路径转换为参数可能会更好,如下所示:

parameters:
    database_path: '%kernel.root_dir%/../var/sqlite3.db'

这个参数可以在需要的地方注入,所以你不必再在代码中弄乱路径。另外,该参数可以在部署时被覆盖。最后,每个维护程序员都会更好地了解你使用的是什么。

用户回答回答于

用这个:

$this->get('kernel')->getRootDir();

如果你想要web根目录:

$this->get('kernel')->getRootDir() . '/../web' . $this->getRequest()->getBasePath();

这将从控制器的行动方法工作

扫码关注云+社区