如何将security.yml中的设置注入服务?

时间:2011-11-03 15:45:40

标签: php dependency-injection symfony

我有自定义服务,我想将check_path(来自app/config/security.yml)设置的值注入其中。在我的服务定义中,我尝试使用

arguments:
  check_path: %security.firewalls.main.form_login.check_path%

但这会导致此错误:

  

服务“myService”依赖于不存在的参数   “security.firewalls.main.form_login.check_path”。

有谁知道如何让它发挥作用?

修改
我可以先在parameters.ini中定义一个变量然后在security.yml中使用它并将其注入我的服务中,但是我想避免这种情况。在parameters.ini中需要'重新声明'变量似乎可能会变得混乱,特别是如果我以后需要从security.yml注入更多设置。我不希望每次需要在parameters.ini中定义一些东西。

2 个答案:

答案 0 :(得分:1)

将此添加到您的parameters.yml(或parameters.ini - 然后使用=而不是:)文件:

login.check_path: /your/path/here

然后转到security.yml并执行此操作:

form_login:
    check_path: %login.check_path%

然后用它作为你的论点:

arguments: [ %login.check_path% ]

答案 1 :(得分:0)

我不是百分百肯定,也许其他人可以确认,但请尝试@ security.firewalls.main.form_login.check_path(使用@而不是引号来引用配置和服务)?