我有Symfony3项目,我希望从主要应用程序中完全分离Sonata管理包。主要应用程序和奏鸣曲用户是不同的实体,永远不会交叉。此外,所有安全设置都是独立且不同的。此外,将来还会有另一个管理子系统 - 与当前应用程序的另一个方面完全不同。
我考虑不同的环境或覆盖内核(通过this方法)并且需要知道如何为每个环境指定安全设置(如果它是正确的方法并且不会炸毁框架)或者通过以下方式选择重写内核。或者......你知道做什么的方法。
我的Symfony版本是3.1。
答案 0 :(得分:2)
除了现有的prod
,dev
和test
之外,您还可以创建新的环境,如文档How to Master and Create new Environments中所述。这将允许您访问新的配置文件(config_[your_new_environment].yml
),该文件又可以在security.yml
语句中完全加载不同的imports
文件并覆盖默认值。
示例:
// config_sonata.yml
imports:
- { resource: config.yml }
- { resource: security_sonata.yml }
在您的情况下,我首先会调查使用不同的防火墙作为主security.yml
文件的一部分。如果您希望在不同应用中保护的网址不重叠,则只需add more firewalls和user providers即可。这应该可以满足您的所有需求,并将所有内容保存在一个地方。