Использовать контейнер: результаты отладки в контроллере Symfony

Когда вы запускаете приложение / консольный контейнер: отладка, вы получаете список всех определенных сервисов. Я хотел бы использовать этот список (только определения) в моем контроллере (расширяющем контроллере Symfony), я хочу использовать этот список для запуска и посмотреть, смогу ли я распознать сервис.

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

Спасибо!! Всем хорошего!

0

Решение

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

Проверьте 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;
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]