我遇到的问题是无法访问控制器上下文之外的配置和路径信息。我在一个没有方法可以帮助我的Assetic Filter类中,我需要知道内核路径以及一些配置。如何在Symfony 2中进行Symfony 1 sfContext::getInstance()
调用?
答案 0 :(得分:2)
如果您正在编写资产过滤器,那么您正在编写服务。在服务定义中,您可以从DIC传递参数。例如,您可以传递AppKernel绝对路径写入:
<argument>%kernel.root_dir%</argument>
如果您希望为过滤器(以及一般的任何服务)提供语义配置,它将驻留在DIC扩展中。默认情况下,“MyNamespaceMyBundle”将在DependencyInjection子包内注册“MyNamespaceMyExtension”扩展类,此扩展将处理“my_namespace_my”顶级配置键创建服务或设置DIC参数的配置。
此外,您可能希望有一个Configuration类来处理配置的验证,规范化和合并。遗憾的是,所有这些或多或少都没有在任何地方记录,因此实现目标的最佳方法是查看其他一些包(例如,我非常了解FOSUserBundle)。
答案 1 :(得分:1)
你没有。你必须以某种方式使用依赖注入。请参阅here原因可能已删除。