diff --git a/src/DI/Container.php b/src/DI/Container.php index c96be8a59..9f6b43154 100644 --- a/src/DI/Container.php +++ b/src/DI/Container.php @@ -217,7 +217,7 @@ public function isCreated(string $name): bool * Creates new instance of the service. * @throws MissingServiceException */ - public function createService(string $name, array $args = []): object + public function createService(string $name): object { $name = $this->aliases[$name] ?? $name; $method = self::getMethodName($name); @@ -226,10 +226,10 @@ public function createService(string $name, array $args = []): object throw new MissingServiceException(sprintf("Service '%s' not found.", $name)); } - $service = $this->preventDeadLock($name, function () use ($callback, $args, $method) { + $service = $this->preventDeadLock($name, function () use ($callback, $method) { return $callback instanceof \Closure - ? $callback(...$args) - : $this->$method(...$args); + ? $callback() + : $this->$method(); }); if (!is_object($service)) { diff --git a/tests/DI/Compiler.generatedFactory.phpt b/tests/DI/Compiler.generatedFactory.phpt index 40a2026ed..fe33a2e22 100644 --- a/tests/DI/Compiler.generatedFactory.phpt +++ b/tests/DI/Compiler.generatedFactory.phpt @@ -324,20 +324,3 @@ Assert::exception(function () { ->setImplement(Bad6::class); $builder->complete(); }, Nette\InvalidStateException::class, "Service 'one' (type of Bad6): Cannot implement Bad6::create(): factory method parameters (\$baz) are not matching Bad5::__construct() parameters (\$xxx)."); - - - -interface Bad7 -{ - public function get(): stdClass; -} - -Assert::exception(function () { - $builder = new DI\ContainerBuilder; - $builder->addDefinition(stdClass::class)->setCreator(stdClass::class); - $builder->addAccessorDefinition('one') - ->setImplement(Bad7::class) - ->setClass(stdClass::class) - ->addSetup('method'); - $builder->complete(); -}, Nette\MemberAccessException::class, 'Call to undefined method Nette\DI\Definitions\AccessorDefinition::addSetup().'); diff --git a/tests/DI/Definitions.AccessorDefinition.api.phpt b/tests/DI/Definitions.AccessorDefinition.api.phpt index ff3a9fbf1..bc829ac7b 100644 --- a/tests/DI/Definitions.AccessorDefinition.api.phpt +++ b/tests/DI/Definitions.AccessorDefinition.api.phpt @@ -46,12 +46,6 @@ interface Good1 } -Assert::exception(function () { - $def = new AccessorDefinition; - $def->setType('Foo'); -}, Nette\MemberAccessException::class); - - Assert::exception(function () { $def = new AccessorDefinition; $def->setImplement('Foo'); diff --git a/tests/DI/Definitions.FactoryDefinition.api.phpt b/tests/DI/Definitions.FactoryDefinition.api.phpt index 526aba439..5e98bc76b 100644 --- a/tests/DI/Definitions.FactoryDefinition.api.phpt +++ b/tests/DI/Definitions.FactoryDefinition.api.phpt @@ -40,12 +40,6 @@ interface Good1 } -Assert::exception(function () { - $def = new FactoryDefinition; - $def->setType('Foo'); -}, Nette\MemberAccessException::class); - - Assert::exception(function () { $def = new FactoryDefinition; $def->setImplement('Foo'); diff --git a/tests/DI/Definitions.FactoryDefinition.render.phpt b/tests/DI/Definitions.FactoryDefinition.render.phpt index 146da0eeb..ad71d013b 100644 --- a/tests/DI/Definitions.FactoryDefinition.render.phpt +++ b/tests/DI/Definitions.FactoryDefinition.render.phpt @@ -25,7 +25,6 @@ test('', function () { $def->setImplement(Good2::class); $builder = new Nette\DI\ContainerBuilder; - $builder->addDefinition('a')->setType(stdClass::class); $resolver = new Nette\DI\Resolver($builder); $resolver->resolveDefinition($def); diff --git a/tests/DI/Definitions.LocatorDefinition.api.phpt b/tests/DI/Definitions.LocatorDefinition.api.phpt index 25068cf2f..48938a900 100644 --- a/tests/DI/Definitions.LocatorDefinition.api.phpt +++ b/tests/DI/Definitions.LocatorDefinition.api.phpt @@ -63,12 +63,6 @@ interface Good3 } -Assert::exception(function () { - $def = new LocatorDefinition; - $def->setType('Foo'); -}, Nette\MemberAccessException::class); - - Assert::exception(function () { $def = new LocatorDefinition; $def->setImplement('Foo');