【问题标题】:how to merge two yml file with same parameter name and different children?如何合并两个具有相同参数名称和不同子级的 yml 文件?
【发布时间】:2016-11-14 00:38:33
【问题描述】:

我在每个包的依赖注入文件夹中添加了 YML 文件:

class GRFBlogExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
        $loader->load('parameters.yml');
    }
}

并为每个包加载 parameters.yml
我在每个 bundle 的 parameters.yml 中都有类似的内容,例如:

博客包:

 parameters:
    adminmenu:
        BlogBundle:
            User:
              title: Users
              path: '/admin/User'

商店捆绑:

parameters:
    adminmenu:
        ShopBundle:
            category:
              title: Categories
              path: '/admin/category'

我想在调用getParameter('adminmenu')时像这样合并这些文件:

parameters:
      adminmenu:
          BlogBundle:
              category:
                title: Categories
                path: '/admin/category'
          ShopBundle:
              User:
                title: Users
                path: '/admin/User'

但只有一个保留在 adminmenu 和 adminmenu 元素中 override 被较新的文件。
请帮帮我。谢谢

【问题讨论】:

    标签: php symfony parameters yaml


    【解决方案1】:

    我找到了一种方法。 在加载新参数之前,在 Extention for Bundle 中获取此参数。

    类似的东西:

    class GRFBlogExtension extends Extension
    {
        public function load(array $configs, ContainerBuilder $container)
        {
            $configuration = new Configuration();
            $config = $this->processConfiguration($configuration, $configs);
    
           $adminMenuKey     = 'adminmenu';
           $coreAdminMenu    = $container->getParameter($uiMapKey);
           $loader           = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
           $loader->load('services.yml');
           $branchAdminMenu  = $container->getParameter($adminMenuKey);
           $groupedAdminMenu = $coreAdminMenu + $branchAdminMenu;
           $container->setParameter($adminMenuKey, $groupedAdminMenu);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多