From 049025d84e3f5b4aefa592ecfdeafcf635bd4932 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Sat, 27 Apr 2024 17:44:00 +0200 Subject: [PATCH] Container: removed $types It was used only for imported services, which is now solved by typehint --- src/DI/Container.php | 6 ------ src/DI/ContainerBuilder.php | 4 ---- src/DI/Definitions/ImportedDefinition.php | 9 ++++----- tests/DI/ContainerBuilder.metadata.phpt | 5 ----- tests/DI/Definitions.ImportedDefinition.phpt | 2 +- tests/DI/expected/compiler.code.php | 1 - 6 files changed, 5 insertions(+), 22 deletions(-) diff --git a/src/DI/Container.php b/src/DI/Container.php index 2a453094e..d72639a63 100644 --- a/src/DI/Container.php +++ b/src/DI/Container.php @@ -23,9 +23,6 @@ class Container */ public $parameters = []; - /** @var string[] service name => type */ - protected array $types = []; - /** @var string[] alias => service name */ protected array $aliases = []; @@ -171,9 +168,6 @@ public function getServiceType(string $name): string if (isset($this->aliases[$name])) { return $this->getServiceType($this->aliases[$name]); - } elseif (isset($this->types[$name])) { - return $this->types[$name]; - } elseif (isset($this->methods[$method])) { return (string) (new \ReflectionMethod($this, $method))->getReturnType(); diff --git a/src/DI/ContainerBuilder.php b/src/DI/ContainerBuilder.php index 92c60c134..b70a2028e 100644 --- a/src/DI/ContainerBuilder.php +++ b/src/DI/ContainerBuilder.php @@ -353,10 +353,6 @@ public function exportMeta(): array $defs = $this->definitions; ksort($defs); foreach ($defs as $name => $def) { - if ($def instanceof Definitions\ImportedDefinition) { - $meta['types'][$name] = $def->getType(); - } - foreach ($def->getTags() as $tag => $value) { $meta['tags'][$tag][$name] = $value; } diff --git a/src/DI/Definitions/ImportedDefinition.php b/src/DI/Definitions/ImportedDefinition.php index eb97fbcbe..501e558cc 100644 --- a/src/DI/Definitions/ImportedDefinition.php +++ b/src/DI/Definitions/ImportedDefinition.php @@ -36,10 +36,9 @@ public function complete(Nette\DI\Resolver $resolver): void public function generateMethod(Nette\PhpGenerator\Method $method, PhpGenerator $generator): void { - $method->setReturnType('void') - ->setBody( - 'throw new Nette\\DI\\ServiceCreationException(?);', - ["Unable to create imported service '{$this->getName()}', it must be added using addService()"], - ); + $method->setBody( + 'throw new Nette\\DI\\ServiceCreationException(?);', + ["Unable to create imported service '{$this->getName()}', it must be added using addService()"], + ); } } diff --git a/tests/DI/ContainerBuilder.metadata.phpt b/tests/DI/ContainerBuilder.metadata.phpt index 76f8be6bd..539a43858 100644 --- a/tests/DI/ContainerBuilder.metadata.phpt +++ b/tests/DI/ContainerBuilder.metadata.phpt @@ -41,11 +41,6 @@ Assert::same( getPropertyValue($container, 'wiring'), ); -Assert::same( - ['container' => Nette\DI\Container::class], - getPropertyValue($container, 'types'), -); - Assert::same( [ 'a' => ['lorem' => true], diff --git a/tests/DI/Definitions.ImportedDefinition.phpt b/tests/DI/Definitions.ImportedDefinition.phpt index 14b734c65..c5dd8fc1f 100644 --- a/tests/DI/Definitions.ImportedDefinition.phpt +++ b/tests/DI/Definitions.ImportedDefinition.phpt @@ -42,7 +42,7 @@ test('', function () { Assert::match( <<<'XX' - public function createServiceAbc(): void + public function createServiceAbc(): stdClass { throw new Nette\DI\ServiceCreationException('Unable to create imported service \'abc\', it must be added using addService()'); } diff --git a/tests/DI/expected/compiler.code.php b/tests/DI/expected/compiler.code.php index 6f2d90b54..c298cde8c 100644 --- a/tests/DI/expected/compiler.code.php +++ b/tests/DI/expected/compiler.code.php @@ -6,7 +6,6 @@ class Container extends Nette\DI\Container { - protected array $types = ['container' => 'Nette\DI\Container']; protected array $aliases = []; protected array $wiring = ['Nette\DI\Container' => [['container']], 'stdClass' => [['01', 'name']]];