【问题标题】:How to inject a setting from security.yml into a service?如何将 security.yml 中的设置注入服务?
【发布时间】:2011-11-03 15:45:39
【问题描述】:

我有一个自定义服务,我想将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 中定义一些东西。

【问题讨论】:

    标签: php dependency-injection symfony


    【解决方案1】:

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

    login.check_path: /your/path/here
    

    然后转到您的security.yml 并执行以下操作:

    form_login:
        check_path: %login.check_path%
    

    然后用这个作为你的论据:

    arguments: [ %login.check_path% ]
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这导致The service "myService" has a dependency on a non-existent service "security.firewalls.main.form_login.check_path".
      猜你喜欢
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 2021-09-24
      相关资源
      最近更新 更多