From 41df6da6a63059379a982d358deb9206594f1587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20S=C3=A1gi-Kaz=C3=A1r?= Date: Tue, 19 Jul 2016 11:49:09 +0200 Subject: [PATCH] Fix autodiscovery Use the correct discovery class as factory Disable all autodiscovery in v1.2.0 to fix it there or install an async capable client as well. --- CHANGELOG.md | 7 +++++++ DependencyInjection/HttplugExtension.php | 20 +++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 271c1341..340211b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log +## 1.2.1 - 2016-07-19 + +### Fixed + +- Auto discovery by using the appropriate discovery class + + ## 1.2.0 - 2016-07-18 ### Added diff --git a/DependencyInjection/HttplugExtension.php b/DependencyInjection/HttplugExtension.php index 8cc63877..f8890619 100644 --- a/DependencyInjection/HttplugExtension.php +++ b/DependencyInjection/HttplugExtension.php @@ -7,6 +7,7 @@ use Http\Client\Common\Plugin\AuthenticationPlugin; use Http\Client\Common\PluginClient; use Http\Discovery\HttpAsyncClientDiscovery; +use Http\Discovery\HttpClientDiscovery; use Http\HttplugBundle\ClientFactory\DummyClient; use Http\HttplugBundle\Collector\DebugPlugin; use Http\Message\Authentication\BasicAuth; @@ -291,14 +292,22 @@ private function configureAutoDiscoveryClients(ContainerBuilder $container, arra { $httpClient = $config['discovery']['client']; if ($httpClient === 'auto') { - $httpClient = $this->registerAutoDiscoverableClientWithDebugPlugin($container, 'client'); + $httpClient = $this->registerAutoDiscoverableClientWithDebugPlugin( + $container, + 'client', + [HttpClientDiscovery::class, 'find'] + ); } elseif ($httpClient) { $httpClient = new Reference($httpClient); } $asyncHttpClient = $config['discovery']['async_client']; if ($asyncHttpClient === 'auto') { - $asyncHttpClient = $this->registerAutoDiscoverableClientWithDebugPlugin($container, 'async_client'); + $asyncHttpClient = $this->registerAutoDiscoverableClientWithDebugPlugin( + $container, + 'async_client', + [HttpAsyncClientDiscovery::class, 'find'] + ); } elseif ($asyncHttpClient) { $asyncHttpClient = new Reference($httpClient); } @@ -310,15 +319,16 @@ private function configureAutoDiscoveryClients(ContainerBuilder $container, arra /** * @param ContainerBuilder $container - * @param $name + * @param string $name + * @param callable $factory * * @return Reference */ - private function registerAutoDiscoverableClientWithDebugPlugin(ContainerBuilder $container, $name) + private function registerAutoDiscoverableClientWithDebugPlugin(ContainerBuilder $container, $name, $factory) { $definition = $container->register('httplug.auto_discovery_'.$name.'.pure', DummyClient::class); $definition->setPublic(false); - $definition->setFactory([HttpAsyncClientDiscovery::class, 'find']); + $definition->setFactory($factory); $serviceIdDebugPlugin = $this->registerDebugPlugin($container, 'auto_discovery_'.$name); $container->register('httplug.auto_discovery_'.$name.'.plugin', PluginClient::class)