From 3c615cb30fea908f2268eaa95db99c777999daea Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 29 Sep 2021 15:23:50 +0200 Subject: [PATCH] DefinitionSchema: better exception on empty definition --- src/DI/Config/DefinitionSchema.php | 3 +++ tests/DI/Compiler.missingDefinition.phpt | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/DI/Config/DefinitionSchema.php b/src/DI/Config/DefinitionSchema.php index da3da2a8b..05fea6877 100644 --- a/src/DI/Config/DefinitionSchema.php +++ b/src/DI/Config/DefinitionSchema.php @@ -159,6 +159,9 @@ private function sniffType($key, array $def): string } elseif (isset($def['imported'])) { return Definitions\ImportedDefinition::class; + } elseif (!$def) { + throw new Nette\DI\InvalidConfigurationException("Service '$key': Empty definition."); + } else { return Definitions\ServiceDefinition::class; } diff --git a/tests/DI/Compiler.missingDefinition.phpt b/tests/DI/Compiler.missingDefinition.phpt index d98187b47..61e8915e1 100644 --- a/tests/DI/Compiler.missingDefinition.phpt +++ b/tests/DI/Compiler.missingDefinition.phpt @@ -14,7 +14,7 @@ Assert::throws(function () { services: - '); -}, Nette\InvalidStateException::class, 'Factory and type are missing in definition of service.'); +}, Nette\InvalidStateException::class, "Service '0': Empty definition."); Assert::throws(function () { @@ -22,4 +22,4 @@ Assert::throws(function () { services: foo: '); -}, Nette\InvalidStateException::class, "Service 'foo': Factory and type are missing in definition of service."); +}, Nette\InvalidStateException::class, "Service 'foo': Empty definition.");