Symfony 2.7 在任何地方检索根目录

Symfony 2.7 retrieve root directory ANYWHERE

我只想问问是否有办法检索 Symfony 应用程序的根目录ANYHWERE?

我所说的任何地方是指在我的应用程序的任何文件中。

我到处搜索,得到的只有这个:

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

这当然有效!但是我不能在我的习惯中使用它 类。我需要在我的自定义 类.

之一中获取根目录

我已经阅读了有关 DependencyInjection/Service 和其他内容的答案,但我认为 complex/overkill 实施这些只是为了解决我当前的问题。

我只想要我的应用程序的根目录,句号。还有其他办法吗?

我查看了我的回答。事实上,它不适合你的需要。无论如何,如果你不想使用依赖注入来实现这个目标,因为你有静态方法,你在哪里调用这些静态方法?在控制器中?在命令中?在另一个服务中?如果你不想实例化你的 class 因为你不想让对象有自己的数据,你有 2 个选择:

  1. 获取 class 之外的根目录,并将其用作静态方法的参数。
  2. 如果您的 class 使用静态方法,这意味着您的 class 就像一个助手 class,它只是一个工具(转换器、导出器、渲染器...等)。所以我假设你把所有的助手 classes 放在一个目录中。在这种情况下,您可以创建一个枚举 class,它定义常量,如 root dirweb dir 给出绝对路径。

我能想到的最简单的方法是在 app.php 文件中定义一个常量,如下所示:

define("ROOTDIR", $kernel->getRootDir());

所以你可以在任何地方使用这个常量。与此相比,静态方法也太过分了。