From 16aa017bed5fd3cb4831e49900b120ab6633d87b Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Sun, 22 Oct 2017 12:01:22 +0200 Subject: [PATCH 1/6] Update composer.json for Symfony 4. --- composer.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index 887d7365..d34deb7c 100644 --- a/composer.json +++ b/composer.json @@ -23,14 +23,14 @@ "php-http/cache-plugin": "^1.4", "php-http/logger-plugin": "^1.0", "php-http/stopwatch-plugin": "^1.0", - "symfony/options-resolver": "^2.8 || ^3.0", - "symfony/event-dispatcher": "^2.8 || ^3.0", - "symfony/framework-bundle": "^2.8 || ^3.0", + "symfony/options-resolver": "^2.8 || ^3.0 || ^4.0", + "symfony/event-dispatcher": "^2.8 || ^3.0 || ^4.0", + "symfony/framework-bundle": "^2.8 || ^3.0 || ^4.0", "php-http/message": "^1.4", "php-http/discovery": "^1.0", "twig/twig": "^1.18 || ^2.0", - "symfony/asset": "^2.8 || ^3.0", - "symfony/dependency-injection": "^2.8.3 || ^3.0.3" + "symfony/asset": "^2.8 || ^3.0 || ^4.0", + "symfony/dependency-injection": "^2.8.3 || ^3.0.3 || ^4.0" }, "require-dev": { "phpunit/php-token-stream": "^1.1.8", @@ -41,13 +41,13 @@ "php-http/buzz-adapter": "^0.3", "php-http/mock-client": "^1.0", "symfony/phpunit-bridge": "^3.3 || ^4.0", - "symfony/twig-bundle": "^2.8 || ^3.0", - "symfony/twig-bridge": "^2.8 || ^3.0", - "symfony/web-profiler-bundle": "^2.8 || ^3.0", - "symfony/finder": "^2.7 || ^3.0", - "symfony/cache": "^3.1", - "symfony/browser-kit": "^2.8 || ^3.0", - "symfony/dom-crawler": "^2.8 || ^3.0", + "symfony/twig-bundle": "^2.8 || ^3.0 || ^4.0", + "symfony/twig-bridge": "^2.8 || ^3.0 || ^4.0", + "symfony/web-profiler-bundle": "^2.8 || ^3.0 || ^4.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0", + "symfony/cache": "^3.1 || ^4.0", + "symfony/browser-kit": "^2.8 || ^3.0 || ^4.0", + "symfony/dom-crawler": "^2.8 || ^3.0 || ^4.0", "polishsymfonycommunity/symfony-mocker-container": "^1.0", "matthiasnoback/symfony-dependency-injection-test": "^1.1 || ^2.0", "nyholm/nsa": "^1.1" From f6edf6535720cb2d20ea2f3bad59d9402630ccf2 Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Fri, 24 Nov 2017 13:58:52 +0100 Subject: [PATCH 2/6] Explicitly make services not marked private as public. --- Resources/config/services.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/config/services.xml b/Resources/config/services.xml index 194921b8..89738ab3 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -4,44 +4,44 @@ xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> - + - + - + - + - + - + - + - + From 87094b3d420647789d4b7b9bf43a9dd3df09869f Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Fri, 24 Nov 2017 14:19:36 +0100 Subject: [PATCH 3/6] Fix service visibility in tests. --- DependencyInjection/HttplugExtension.php | 1 + Tests/Functional/ServiceInstantiationTest.php | 8 ++++---- Tests/Resources/app/config/config_test.yml | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DependencyInjection/HttplugExtension.php b/DependencyInjection/HttplugExtension.php index e8afe492..5f155a9f 100644 --- a/DependencyInjection/HttplugExtension.php +++ b/DependencyInjection/HttplugExtension.php @@ -297,6 +297,7 @@ private function configureClient(ContainerBuilder $container, $clientName, array $container ->register($serviceId, PluginClient::class) + ->setPublic(true) ->setFactory([new Reference(PluginClientFactory::class), 'createClient']) ->addArgument(new Reference($serviceId.'.client')) ->addArgument( diff --git a/Tests/Functional/ServiceInstantiationTest.php b/Tests/Functional/ServiceInstantiationTest.php index 817d8aa4..b1beb7df 100644 --- a/Tests/Functional/ServiceInstantiationTest.php +++ b/Tests/Functional/ServiceInstantiationTest.php @@ -24,8 +24,8 @@ public function testHttpClient() { static::bootKernel(); $container = static::$kernel->getContainer(); - $this->assertTrue($container->has('httplug.client')); - $client = $container->get('httplug.client'); + $this->assertTrue($container->has('httplug.client.default')); + $client = $container->get('httplug.client.default'); $this->assertInstanceOf(HttpClient::class, $client); } @@ -33,8 +33,8 @@ public function testHttpClientNoDebug() { static::bootKernel(['debug' => false]); $container = static::$kernel->getContainer(); - $this->assertTrue($container->has('httplug.client')); - $client = $container->get('httplug.client'); + $this->assertTrue($container->has('httplug.client.default')); + $client = $container->get('httplug.client.default'); $this->assertInstanceOf(HttpClient::class, $client); } diff --git a/Tests/Resources/app/config/config_test.yml b/Tests/Resources/app/config/config_test.yml index 52288d6f..7e74ddda 100644 --- a/Tests/Resources/app/config/config_test.yml +++ b/Tests/Resources/app/config/config_test.yml @@ -26,3 +26,4 @@ httplug: services: app.http.plugin.custom: class: Http\Client\Common\Plugin\RedirectPlugin + public: true From db0b25543f66fd596500152cd519378f94c41111 Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Fri, 24 Nov 2017 14:51:32 +0100 Subject: [PATCH 4/6] Make replacement for httplug.client.default public. --- DependencyInjection/HttplugExtension.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DependencyInjection/HttplugExtension.php b/DependencyInjection/HttplugExtension.php index 5f155a9f..ed30b590 100644 --- a/DependencyInjection/HttplugExtension.php +++ b/DependencyInjection/HttplugExtension.php @@ -14,6 +14,7 @@ use Http\Message\Authentication\Wsse; use Psr\Http\Message\UriInterface; use Symfony\Component\Config\FileLocator; +use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -103,7 +104,7 @@ private function configureClients(ContainerBuilder $container, array $config) // If we do not have a client named 'default' if (!isset($config['clients']['default'])) { // Alias the first client to httplug.client.default - $container->setAlias('httplug.client.default', 'httplug.client.'.$first); + $container->setAlias('httplug.client.default', new Alias('httplug.client.'.$first, true)); } } } From 693cefbe37ff9a3d66ddd74574b819731ae91bdf Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Mon, 27 Nov 2017 23:01:40 +0100 Subject: [PATCH 5/6] Fix service visibility. --- Resources/config/services.xml | 2 +- Tests/Functional/ServiceInstantiationTest.php | 8 ++++---- Tests/Resources/app/config/config_test.yml | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Resources/config/services.xml b/Resources/config/services.xml index 89738ab3..a9f5a6ff 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -44,7 +44,7 @@ - + diff --git a/Tests/Functional/ServiceInstantiationTest.php b/Tests/Functional/ServiceInstantiationTest.php index b1beb7df..817d8aa4 100644 --- a/Tests/Functional/ServiceInstantiationTest.php +++ b/Tests/Functional/ServiceInstantiationTest.php @@ -24,8 +24,8 @@ public function testHttpClient() { static::bootKernel(); $container = static::$kernel->getContainer(); - $this->assertTrue($container->has('httplug.client.default')); - $client = $container->get('httplug.client.default'); + $this->assertTrue($container->has('httplug.client')); + $client = $container->get('httplug.client'); $this->assertInstanceOf(HttpClient::class, $client); } @@ -33,8 +33,8 @@ public function testHttpClientNoDebug() { static::bootKernel(['debug' => false]); $container = static::$kernel->getContainer(); - $this->assertTrue($container->has('httplug.client.default')); - $client = $container->get('httplug.client.default'); + $this->assertTrue($container->has('httplug.client')); + $client = $container->get('httplug.client'); $this->assertInstanceOf(HttpClient::class, $client); } diff --git a/Tests/Resources/app/config/config_test.yml b/Tests/Resources/app/config/config_test.yml index 7e74ddda..599b062a 100644 --- a/Tests/Resources/app/config/config_test.yml +++ b/Tests/Resources/app/config/config_test.yml @@ -27,3 +27,5 @@ services: app.http.plugin.custom: class: Http\Client\Common\Plugin\RedirectPlugin public: true + # plugin services usually do not need to be public. + # this one is made public so that we can do functional tests on the service From 6beb3f07683a823f40e6f164d86fcc98bdd07767 Mon Sep 17 00:00:00 2001 From: Denis Brumann Date: Tue, 28 Nov 2017 21:35:37 +0100 Subject: [PATCH 6/6] Make main aliases public. --- DependencyInjection/HttplugExtension.php | 2 +- Resources/config/services.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DependencyInjection/HttplugExtension.php b/DependencyInjection/HttplugExtension.php index ed30b590..1a010185 100644 --- a/DependencyInjection/HttplugExtension.php +++ b/DependencyInjection/HttplugExtension.php @@ -51,7 +51,7 @@ public function load(array $configs, ContainerBuilder $container) // Set main aliases foreach ($config['main_alias'] as $type => $id) { - $container->setAlias(sprintf('httplug.%s', $type), $id); + $container->setAlias(sprintf('httplug.%s', $type), new Alias($id, true)); } // Configure toolbar diff --git a/Resources/config/services.xml b/Resources/config/services.xml index a9f5a6ff..89738ab3 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -44,7 +44,7 @@ - +