如何使用不同的 security.yml 文件/安全设置?

How to use different security.yml files / security settings?

我有 Symfony3 项目,我想在其中将 Sonata 管理包与主要应用程序完全分开。主应用程序和奏鸣曲用户是永远不会交叉的不同实体。此外,所有安全设置都是独立且不同的。此外,将来还会有另一个管理子系统 - 与当前应用程序的另一个方面完全不同。

我考虑不同的环境或覆盖内核(通过 this 方法)并且需要知道如何为每个环境指定安全设置(如果它是正确的方法并且不会破坏框架)或使它成为现实可以通过覆盖内核来选择。或者...您知道的任何方法。

我的 Symfony 版本是 3.1。

除了现有的 proddevtest 环境之外,您还可以创建新环境,如文档 How to Master and Create new Environments 中所述。这将使您能够访问一个新的配置文件 (config_[your_new_environment].yml),该文件又可以在 imports 语句中加载一个不同的 security.yml 文件并覆盖默认值。

示例:

// config_sonata.yml

imports:
    - { resource: config.yml }
    - { resource: security_sonata.yml }

虽然在你的情况下,我会首先调查使用不同的防火墙作为主 security.yml 文件的一部分。如果您希望在不同应用程序中保护的 URL 不重叠,您可以简单地 add more firewalls and user providers。这应该可以满足您的所有需求并将所有内容放在一个地方。