Symfony 2.7 ANYWHERE检索根目录

时间:2018-05-21 04:01:36

标签: symfony symfony-2.7

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

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

我到处搜索,我得到的就是:

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

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

我已经阅读了有关DependencyInjection / Service和其他内容的答案,但我认为实现这些目的只是为了解决我当前的问题而过于复杂/过度。

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

2 个答案:

答案 0 :(得分:2)

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

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

所以你可以在任何地方使用这个常数。与此相比,静态方法也是过度的。

答案 1 :(得分:1)

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

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