2015-01-30 2 views
0

При запуске контейнера app/console: debug вы получаете список всех определенных сервисов. Я хотел бы использовать этот список (только определения) в моем контроллере (расширяя контроллер Symfony), я хочу использовать этот список для прогона и посмотреть, могу ли я распознать услугу.Использование контейнера: результаты отладки в контроллере Symfony

Другим вариантом может быть служба загрузки по звездам, как в $ this-> get ('example.start *'), или что-то в этом замирании, кто-нибудь сделал это? Я пропустил некоторые документы?

Спасибо! У всех есть хороший!

ответ

1

Я надеюсь, что это полезно для вас ...

Проверить http://api.symfony.com/2.5/Symfony/Component/DependencyInjection/ContainerBuilder.html больше данных ...

use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; 
use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\Config\FileLocator;      

class SomeController 
{ 
    public function containerDebuglAction() 
    { 
     print_r(array_keys($this->getContainerBuilder()->getDefinitions())); 
    } 


    /** 
    * Loads the ContainerBuilder from the cache.                        
    *  
    * @return ContainerBuilder                             
    *                                   
    * @throws \LogicException 
    */ 
    protected function getContainerBuilder() 
    { 
     if (!is_file($cachedFile = $this->get('service_container')->getParameter('debug.container.dump'))) {          
      throw new \LogicException(sprintf('Debug information about the container could not be found. Please clear the cache and try again.') 
     }                                  

     $container = new ContainerBuilder();                          

     $loader = new XmlFileLoader($container, new FileLocator());                    
     $loader->load($cachedFile); 

     return $container;                              
    }  
} 
+0

Thansk! То, что мне нужно + –

Смежные вопросы