php - 如何合并两个具有相同参数名称和不同子项的 yml 文件?

标签 php symfony parameters yaml

我将 YML 文件添加到每个包中的依赖项注入(inject)文件夹中:

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
我在每个包的 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 由较新的文件。
请帮助我。谢谢

最佳答案

我找到了一种方法。 在加载新参数之前在 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);
    }
}

关于php - 如何合并两个具有相同参数名称和不同子项的 yml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317550/

相关文章:

php - 在 PHP 中获取 Web 服务器版本

php - 如何从 MySQL 回显包含城市的行以及同一字段中为空的行?

mysql - Symfony2 - 在 json 响应中从我的数据库 MySQL 更改字符

javascript - 当函数返回 Promise 时,Javascript 中的参数断言应该直接抛出吗?

java - 在 Java 方法调用中使用指针作为参数

PHP将日期插入mysql数据库

php - 注意第 4 行的 : Undefined index: HTTP_X_FORWARDED_PROTO in C:\Users\me\project\index. php

Symfony self 更新失败

javascript - Symfony 3 - 作为 XmlHttpRequest() (javascript) 发送 AJAX 请求不会在后端将请求作为 XmlHttpRequest 拾取

perl - 使用 SOAP 和 Perl 调用带参数的函数