Php 不同环境下的不同security.yml文件

Php 不同环境下的不同security.yml文件,php,symfony,Php,Symfony,我无法找到一种方法来包含不同的security.yml文件,这些文件将根据Symfony2的环境而包括在内。例如,我想为我的验收测试提供一个内存中的用户提供者,因为我实际上不需要在这里测试我的实体和东西,我只想对我的视图进行验收测试 但是,事实证明,这不是一件容易的事情。我从我的config.yml中的includes中删除了security.yml,将其重命名为security\u prod.yml,并创建了一个security\u test.yml,它的内存中有用户提供程序。然后我在我的生产

我无法找到一种方法来包含不同的
security.yml
文件,这些文件将根据Symfony2的环境而包括在内。例如,我想为我的验收测试提供一个内存中的用户提供者,因为我实际上不需要在这里测试我的实体和东西,我只想对我的视图进行验收测试

但是,事实证明,这不是一件容易的事情。我从我的
config.yml
中的includes中删除了
security.yml
,将其重命名为
security\u prod.yml
,并创建了一个
security\u test.yml
,它的
内存中有
用户提供程序。然后我在我的生产和测试配置中分别包括了
security\u prod.yml
security\u 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
s?造成这种行为的原因是什么?

针对寻找这种行为的人的说明(不要发表红色评论):

  • 为不同的环境创建不同的
    config
    文件:
    config\u test.yml
    config\u dev.yml
    config\u prod.yml
  • 创建不同的
    security
    文件:
    security\u test.yml
    security\u dev.yml
    security\u prod.yml
  • 为其他环境导入
    config\u test.yml
    中的
    security\u test.yml
    ,依此类推。
    config\u test.yml
    示例:

    imports:
      - { resource: security_test.yml }
    
  • 确保只包含一次
    security.*.yml
    (基本上是作者犯了这个错误)

  • 你能发布你的config.yml config_prod.yml和config_test.yml(或者至少是包含文件的部分)吗?@CarlosGranados,谢谢你的关注,但问题是在我的办公椅上发现的。我曾两次将我的security.ymls包括在内:)这就是我所怀疑的,这就是为什么我要求你发布这些信息files@Brad拉森:恰恰相反,这个问题很可能会帮助很多未来的访问者,因为它涉及的主题文档非常少。这是Symfony中的单元/功能测试,如果有针对不同环境的安全配置的工作示例,那将非常有用。@uroMandinić-I被要求关闭它,因为它已被解决,因为在上述评论中有一个显然不相关的问题。如果不是这样的话,我会重新开始。