2016-07-25 76 views
0

我正在試圖對某種可選依賴關係的教義orm。 根據配置的不同,我希望將「doctrine.orm.entity_manager」與setter注入注入alsatian_form.form_event_subscriber.extensible服務。如何添加setter注入注入捆綁擴展中的服務

<?php 

use Symfony\Component\HttpKernel\DependencyInjection\Extension; 

class AlsatianFormExtension extends Extension 
{ 
    public function load(array $configs, ContainerBuilder $container) 
    { 
     $configuration = new Configuration(); 
     $configFormBundle = $this->processConfiguration($configuration, $configs); 
     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 
     $loader->load('services.yml'); 


     if($configFormBundle['extensible_entity']['enabled']){ 
      $definition = $container->getDefinition('alsatian_form.form_type.extensible_entity'); 
      $definition->setPublic(true); 
      $definition->addTag('form.type'); 

      $container->getDefinition('alsatian_form.form_event_subscriber.extensible') 
       ->addMethodCall('setEntityManager', array("@doctrine.orm.entity_manager")); // <- here I tried with the same syntax as in YAML configuration files. 
     } 
    } 
} 

我認爲它必須是一個語法問題,因爲我收到了字符串「@ doctrine.orm.entity_manager」,而不是實體管理器...

回答

0

就找到了答案here

use Symfony\Component\DependencyInjection\Reference; 

container->getDefinition('alsatian_form.form_event_subscriber.extensible') 
       ->addMethodCall('setEntityManager', array(new Reference("doctrine.orm.entity_manager"))); 

我希望它可以幫助某人。