From 7bc9eb69c57d2361dfecf5ef22dfdab4679139fb Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Mon, 24 Jan 2022 16:41:44 +0100 Subject: [PATCH] [DI] Fix tests on PHP 7.1 --- .../Fixtures/config/defaults.expected.yml | 4 +-- .../Tests/Fixtures/config/defaults.php | 1 - .../config/inline_binding.expected.yml | 28 +++++++++++++++++++ .../Tests/Fixtures/config/inline_binding.php | 23 +++++++++++++++ .../Tests/Loader/PhpFileLoaderTest.php | 5 ++++ 5 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.expected.yml create mode 100644 src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.php diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.expected.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.expected.yml index efa54cb8888e5..13321967e3d6c 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.expected.yml +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.expected.yml @@ -15,14 +15,14 @@ services: - { name: t, a: b } autowire: true autoconfigure: true - arguments: ['@bar', !tagged_iterator foo, !service { class: Baz }] + arguments: ['@bar', !tagged_iterator foo] bar: class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo public: true tags: - { name: t, a: b } autowire: true - arguments: [null, !tagged_iterator foo, !service { class: Baz }] + arguments: [null, !tagged_iterator foo] calls: - [setFoo, ['@bar']] diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.php index cdaee76e5b623..6123403394917 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/defaults.php @@ -15,7 +15,6 @@ ->tag('t', ['a' => 'b']) ->bind(Foo::class, ref('bar')) ->bind('iterable $foo', tagged_iterator('foo')) - ->bind('object $baz', inline('Baz')) ->public(); $s->set(Foo::class)->args([ref('bar')])->public(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.expected.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.expected.yml new file mode 100644 index 0000000000000..efa54cb8888e5 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.expected.yml @@ -0,0 +1,28 @@ + +services: + service_container: + class: Symfony\Component\DependencyInjection\ContainerInterface + public: true + synthetic: true + App\BarService: + class: App\BarService + public: true + arguments: [!service { class: FooClass }] + Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo: + class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo + public: true + tags: + - { name: t, a: b } + autowire: true + autoconfigure: true + arguments: ['@bar', !tagged_iterator foo, !service { class: Baz }] + bar: + class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo + public: true + tags: + - { name: t, a: b } + autowire: true + arguments: [null, !tagged_iterator foo, !service { class: Baz }] + calls: + - [setFoo, ['@bar']] + diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.php new file mode 100644 index 0000000000000..cdaee76e5b623 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/inline_binding.php @@ -0,0 +1,23 @@ +import('basic.php'); + + $s = $c->services()->defaults() + ->public() + ->private() + ->autoconfigure() + ->autowire() + ->tag('t', ['a' => 'b']) + ->bind(Foo::class, ref('bar')) + ->bind('iterable $foo', tagged_iterator('foo')) + ->bind('object $baz', inline('Baz')) + ->public(); + + $s->set(Foo::class)->args([ref('bar')])->public(); + $s->set('bar', Foo::class)->call('setFoo')->autoconfigure(false); +}; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php b/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php index e0ddd71f9d366..afc42f2a93879 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php @@ -78,6 +78,11 @@ public function provideConfig() yield ['php7']; yield ['anonymous']; yield ['lazy_fqcn']; + + // fixture uses PHP 7.2+ object typehint + if (70200 <= \PHP_VERSION_ID) { + yield ['inline_binding']; + } } public function testAutoConfigureAndChildDefinitionNotAllowed()