我将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');
}
}
和加载参数.yml 每个捆绑包
我在参数.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'
但只有一个保留在管理菜单和管理员菜单元素被较新的文件覆盖。
请帮帮我,谢谢
我找到了 1 种方法。在加载新参数之前,在捆绑包的扩展中获取此参数。
像这样:
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);
}
}