如何在Symfony 2中访问Controller外部的路径和配置?

时间:2011-11-16 07:46:12

标签: php symfony1

我遇到的问题是无法访问控制器上下文之外的配置和路径信息。我在一个没有方法可以帮助我的Assetic Filter类中,我需要知道内核路径以及一些配置。如何在Symfony 2中进行Symfony 1 sfContext::getInstance()调用?

2 个答案:

答案 0 :(得分:2)

如果您正在编写资产过滤器,那么您正在编写服务。在服务定义中,您可以从DIC传递参数。例如,您可以传递AppKernel绝对路径写入:

<argument>%kernel.root_dir%</argument>

如果您希望为过滤器(以及一般的任何服务)提供语义配置,它将驻留在DIC扩展中。默认情况下,“MyNamespaceMyBundle”将在DependencyInjection子包内注册“MyNamespaceMyExtension”扩展类,此扩展将处理“my_namespace_my”顶级配置键创建服务或设置DIC参数的配置。

此外,您可能希望有一个Configuration类来处理配置的验证,规范化和合并。遗憾的是,所有这些或多或少都没有在任何地方记录,因此实现目标的最佳方法是查看其他一些包(例如,我非常了解FOSUserBundle)。

答案 1 :(得分:1)

你没有。你必须以某种方式使用依赖注入。请参阅here原因可能已删除。