|
4 | 4 |
|
5 | 5 | use EightPoints\Bundle\GuzzleBundle\Log\Logger; |
6 | 6 | use EightPoints\Bundle\GuzzleBundle\Twig\Extension\DebugExtension; |
| 7 | +use GuzzleHttp\ClientInterface; |
7 | 8 | use Symfony\Component\DependencyInjection\ContainerBuilder; |
8 | 9 | use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; |
9 | 10 | use Symfony\Component\DependencyInjection\Reference; |
@@ -91,13 +92,21 @@ public function load(array $configs, ContainerBuilder $container) |
91 | 92 | // set service name based on client name |
92 | 93 | $serviceName = sprintf('%s.client.%s', $this->getAlias(), $name); |
93 | 94 | $container->setDefinition($serviceName, $client); |
| 95 | + |
| 96 | + // Allowed only for Symfony 4.2+ |
| 97 | + if (method_exists($container, 'registerAliasForArgument')) { |
| 98 | + if ('%eight_points_guzzle.http_client.class%' !== $options['class']) { |
| 99 | + $container->registerAliasForArgument($serviceName, $options['class'], $name . 'Client'); |
| 100 | + } |
| 101 | + $container->registerAliasForArgument($serviceName, ClientInterface::class, $name . 'Client'); |
| 102 | + } |
94 | 103 | } |
95 | 104 |
|
96 | | - $clientsWithLogging = array_filter($config['clients'], function ($options) use ($logging) { |
| 105 | + $clientsWithLogging = array_filter($config['clients'], function($options) use ($logging) { |
97 | 106 | return $options['logging'] !== false && $logging !== false; |
98 | 107 | }); |
99 | 108 |
|
100 | | - if (count($clientsWithLogging)>0) { |
| 109 | + if (count($clientsWithLogging) > 0) { |
101 | 110 | $this->defineTwigDebugExtension($container); |
102 | 111 | $this->defineDataCollector($container, $config['slow_response_time'] / 1000); |
103 | 112 | $this->defineFormatter($container); |
@@ -125,7 +134,7 @@ protected function createHandler(ContainerBuilder $container, string $clientName |
125 | 134 | $container->setDefinition($eventServiceName, $eventService); |
126 | 135 |
|
127 | 136 | // Create the event Dispatch Middleware |
128 | | - $eventExpression = new Expression(sprintf("service('%s').dispatchEvent()", $eventServiceName)); |
| 137 | + $eventExpression = new Expression(sprintf("service('%s').dispatchEvent()", $eventServiceName)); |
129 | 138 |
|
130 | 139 | $handler = new Definition(HandlerStack::class); |
131 | 140 | $handler->setFactory([HandlerStack::class, 'create']); |
@@ -173,7 +182,7 @@ protected function createHandler(ContainerBuilder $container, string $clientName |
173 | 182 | */ |
174 | 183 | private function convertLogMode($logMode) : int |
175 | 184 | { |
176 | | - if ($logMode === true){ |
| 185 | + if ($logMode === true) { |
177 | 186 | return Logger::LOG_MODE_REQUEST_AND_RESPONSE; |
178 | 187 | } elseif ($logMode === false) { |
179 | 188 | return Logger::LOG_MODE_NONE; |
@@ -230,7 +239,7 @@ protected function defineLogger(ContainerBuilder $container, int $logMode, strin |
230 | 239 | protected function defineDataCollector(ContainerBuilder $container, float $slowResponseTime) : void |
231 | 240 | { |
232 | 241 | $dataCollectorDefinition = new Definition('%eight_points_guzzle.data_collector.class%'); |
233 | | - $dataCollectorDefinition->addArgument(array_map(function ($loggerId) : Reference { |
| 242 | + $dataCollectorDefinition->addArgument(array_map(function($loggerId) : Reference { |
234 | 243 | return new Reference($loggerId); |
235 | 244 | }, array_keys($container->findTaggedServiceIds('eight_points_guzzle.logger')))); |
236 | 245 |
|
|
0 commit comments