【问题标题】:Looked for namespace "security", found none寻找命名空间“安全”,没有找到
【发布时间】:2019-02-25 19:00:14
【问题描述】:

我正在尝试创建一个使用特殊身份验证服务的自定义捆绑包。我们所有的项目都将使用此捆绑包。

我想做它,所以需要一些配置才能使用它。

当我尝试在我的包中添加安全配置时出现我的问题,如下所示:

# security.yml
security:
  providers:
    specialauth:
      id: AuthBundle\Security\SpecialAuthProvider
  firewalls:
    main:
      logout:
        path: '/logout'

当我在我的包中执行此操作时,我收到此错误: Looked for namespace "security", found none

如果我在我的应用程序/配置中移动此安全配置,它可以正常工作,但我希望此配置保留在 AuthBundle 中,这样开发人员就不必为每个项目配置太多东西。

这是来自 symfony 的限制,不允许来自外部包的安全配置,或者问题是什么?

【问题讨论】:

  • 它不是特定于安全性的。 Symfony 配置系统基于让一个包提供默认配置,然后让应用程序能够覆盖某些设置。我认为如果不使用编译器通行证,你就不能做你想做的事。最好只使用标准方法并在应用程序级别进行配置。

标签: php symfony symfony-3.4


【解决方案1】:

您可以在项目的安全文件中导入您的security.yml:

app/config/security.yml:

imports:
- { resource: '@AuthBundle/Resources/config/security.yml' }

【讨论】:

  • 是的。但我正在尝试将大量配置从应用程序级别移动到 AuthBundle 级别
  • 您的应用程序应该始终在应用程序级别有一个 security.yml,因为它链接到应用程序本身。
  • 正如@Cerad 所说,我必须使用一些编译器通道来实现我们不想使用的目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 2017-05-05
  • 2016-03-14
  • 2015-02-16
  • 2019-11-20
相关资源
最近更新 更多