我已经看到了在symfony 3.4中执行此操作的所有说明但我无法弄清楚如何在Symfony 4中执行此操作。我有一个自定义环境,当开发人员将APP_ENV设置为该环境时,我想要一个不同的安全性.yaml将被使用。比如我创建了一个配置环境'local',当我有config / packages / local / security.yaml和APP_ENV = local时,我的应用程序仍默认为config / packages / security.yaml。我希望完全忽略config / packages / security.yaml,而不是config / packages / local / security.yaml。
这是我的prod/security.yaml
:
security:
providers:
shibboleth:
id: App\Security\User\ShibbolethUserProvider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
stateless: true
anonymous: ~
guard:
authenticators:
- app.shibboleth_authenticator
logout:
path: /logout
success_handler: app.shibboleth_authenticator
access_control:
- { path: ^/result, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
这是我的local/security.yaml
:
security:
providers:
in_memory: { memory: ~ }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
答案 0 :(得分:2)
在Symfony4中,您将配置拆分为环境文件夹。你想做的可能是以下几点:
.
└── config
└── packages
├── dev
├── local
│ └── security.yaml
├── prod
│ └── security.yaml
└── tests
中的这一行
$loader->load($confDir.'/{packages}/'.$this->environment.'/**/*'.self::CONFIG_EXTS, 'glob');