我无法找到一种方法来包含不同的security.yml
文件,这些文件将根据Symfony2的环境包含在内。例如,我想为我的验收测试设置一个内存中的用户提供者,因为我不需要在这里测试我的实体和东西,我只想对我的观点进行验收测试。针对不同环境的不同security.yml文件
但事实证明,这不是一件容易的事情。我从我的config.yml
中删除了security.yml
,将其更名为security_prod.yml
,并创建了一个security_test.yml
,其中包含in_memory
用户提供商。然后我分别在我的生产和测试配置中包含了security_prod.yml
和security_test.yml
。
然而,这似乎并没有在所有的工作:
$ SYMFONY_ENV=test app/console cache:clear
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
You are not allowed to define new elements for path "security.providers". Please define all elements for this path in one config file.
$ SYMFONY_ENV=prod app/console cache:clear
[Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException]
Configuration path "security.access_control" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one
configuration section.
这在我看来就像security.yml
文件名被硬编码(这将是Symfony的方式太怪异了),而事实并非如此。
所以问题是:我怎么用Symfony获得多个security.yml
?什么可能导致这种行为?
您可以发布您config.yml config_prod.yml和config_test.yml(或至少部分包括文件在内)? – 2012-08-09 08:45:54
@CarlosGranados,谢谢你的关心,但事实证明,问题发现坐在我的办公室椅子上。我包括我的security.ymls两次:) – kix 2012-08-09 09:12:00
这就是我所怀疑的,这就是为什么我要求你发布这些文件 – 2012-08-09 09:15:37