Когда вы запускаете приложение / консольный контейнер: отладка, вы получаете список всех определенных сервисов. Я хотел бы использовать этот список (только определения) в моем контроллере (расширяющем контроллере Symfony), я хочу использовать этот список для запуска и посмотреть, смогу ли я распознать сервис.
Другим вариантом будет загрузка служб типа «звезда» как в $ this-> get (‘example.start *’) или что-то подобное, кто-нибудь когда-нибудь делал это? Я пропустил некоторую документацию?
Спасибо!! Всем хорошего!
Я надеюсь, что это полезно для вас …
Проверьте 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;
}
}
Других решений пока нет …