From ce77aae66ac2940d3ab2f83abf84fe0466285a87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Niedzielski?= Date: Fri, 26 Oct 2018 18:31:51 +0200 Subject: [PATCH] Try to get env parameter from container before throwing an exception --- pkg/enqueue/Symfony/DefaultTransportFactory.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/enqueue/Symfony/DefaultTransportFactory.php b/pkg/enqueue/Symfony/DefaultTransportFactory.php index fa45d2544..6f7429613 100644 --- a/pkg/enqueue/Symfony/DefaultTransportFactory.php +++ b/pkg/enqueue/Symfony/DefaultTransportFactory.php @@ -24,6 +24,7 @@ use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use function Enqueue\dsn_to_connection_factory; class DefaultTransportFactory implements TransportFactoryInterface, DriverFactoryInterface @@ -161,7 +162,11 @@ private function resolveDSN(ContainerBuilder $container, $dsn) $matches = []; if (preg_match('/%env\((.*?)\)/', $dsn, $matches)) { if (false === $realDsn = getenv($matches[1])) { - throw new \LogicException(sprintf('The env "%s" var is not defined', $matches[1])); + try { + $realDsn = $container->getParameter($matches[1]); + } catch (InvalidArgumentException $exception) { + throw new \LogicException(sprintf('The env "%s" var is not defined', $matches[1]), $exception); + } } return $realDsn;