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



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

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

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

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

哪个当然有效!但我不能在我的自定义类中使用它。我需要在我的一个自定义类中获取根目录。

我已经阅读了有关依赖注入/服务和其他东西的答案,但我认为仅仅为了解决我当前的问题而实现这些答案太复杂/矫枉过正了。

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

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

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

因此,您可以在任何地方使用此常量。与此相比,静态方法也是矫枉过正的。

我复习了我的答案。事实上,它不符合您的需求。无论如何,如果你不想使用依赖注入来实现这个目标,因为你有静态方法,你在哪里调用这些静态方法?在控制器中?在命令中?在另一项服务中?如果您不想实例化您的类,因为您不希望对象具有自己的数据,您有 2 个选项:

  1. 获取类外部的根目录,并将其用作静态方法的参数。
  2. 如果您的类使用静态方法,这意味着您的类表现为帮助程序类,则它只是一个工具(转换器、导出器、渲染器......等(。所以我假设你把所有的帮助程序类放在一个目录中。在这种情况下,您可以创建一个枚举类,该类定义常量,例如根目录Web dir提供绝对路径。

最新更新