|
26 | 26 | use Interop\Queue\PsrContext;
|
27 | 27 | use Interop\Queue\PsrProcessor;
|
28 | 28 | use Symfony\Component\DependencyInjection\ContainerBuilder;
|
| 29 | +use Symfony\Component\DependencyInjection\ContainerInterface; |
29 | 30 |
|
30 | 31 | final class SimpleClient
|
31 | 32 | {
|
32 | 33 | /**
|
33 |
| - * @var ContainerBuilder |
| 34 | + * @var ContainerInterface |
34 | 35 | */
|
35 | 36 | private $container;
|
36 | 37 |
|
| 38 | + /** |
| 39 | + * @var array|string |
| 40 | + */ |
| 41 | + private $config; |
| 42 | + |
37 | 43 | /**
|
38 | 44 | * The config could be a transport DSN (string) or an array, here's an example of a few DSNs:.
|
39 | 45 | *
|
@@ -73,11 +79,13 @@ final class SimpleClient
|
73 | 79 | * ]
|
74 | 80 | *
|
75 | 81 | *
|
76 |
| - * @param string|array $config |
| 82 | + * @param string|array $config |
| 83 | + * @param ContainerBuilder|null $container |
77 | 84 | */
|
78 |
| - public function __construct($config) |
| 85 | + public function __construct($config, ContainerBuilder $container = null) |
79 | 86 | {
|
80 |
| - $this->container = $this->buildContainer($config); |
| 87 | + $this->container = $this->buildContainer($config, $container ?: new ContainerBuilder()); |
| 88 | + $this->config = $config; |
81 | 89 | }
|
82 | 90 |
|
83 | 91 | /**
|
@@ -252,16 +260,16 @@ public function getRouterProcessor()
|
252 | 260 | }
|
253 | 261 |
|
254 | 262 | /**
|
255 |
| - * @param array|string $config |
| 263 | + * @param array|string $config |
| 264 | + * @param ContainerBuilder $container |
256 | 265 | *
|
257 |
| - * @return ContainerBuilder |
| 266 | + * @return ContainerInterface |
258 | 267 | */
|
259 |
| - private function buildContainer($config) |
| 268 | + private function buildContainer($config, ContainerBuilder $container) |
260 | 269 | {
|
261 | 270 | $config = $this->buildConfig($config);
|
262 | 271 | $extension = $this->buildContainerExtension();
|
263 | 272 |
|
264 |
| - $container = new ContainerBuilder(); |
265 | 273 | $container->registerExtension($extension);
|
266 | 274 | $container->loadFromExtension($extension->getAlias(), $config);
|
267 | 275 |
|
|
0 commit comments