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;