2016-07-11 18 views
3

私は、各バンドルに注入フォルダを依存性YMLファイルを追加しました:バンドル
あたり2つの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私は、例えば、各バンドルのためparameters.ymlでこのようなものを持っている:

BlogBu​​ndle:

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

ShopBundle:

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要素オーバーライド
は私が、私はそれを行うための1つの方法を見つけ

答えて

0

please.thanksヘルプ。 新しいパラメータをロードする前に、このパラメータをExtension 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); 
    } 
} 
関連する問題