From 33b188dd8fce8de15795a19ac89bb34227dfb37a Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 30 Dec 2020 23:22:06 +0100 Subject: [PATCH] Compiler: triggers schema warnings --- src/DI/Compiler.php | 6 ++- .../Compiler.extension.schema.deprecated.phpt | 43 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tests/DI/Compiler.extension.schema.deprecated.phpt diff --git a/src/DI/Compiler.php b/src/DI/Compiler.php index c4ad760fd..281d53123 100644 --- a/src/DI/Compiler.php +++ b/src/DI/Compiler.php @@ -276,10 +276,14 @@ private function processSchema(Schema\Schema $schema, array $configs, $name = nu $context->dynamics = &$this->extensions[self::PARAMETERS]->dynamicValidators; }; try { - return $processor->processMultiple($schema, $configs); + $res = $processor->processMultiple($schema, $configs); } catch (Schema\ValidationException $e) { throw new Nette\DI\InvalidConfigurationException($e->getMessage()); } + foreach ($processor->getWarnings() as $warning) { + trigger_error($warning, E_USER_DEPRECATED); + } + return $res; } diff --git a/tests/DI/Compiler.extension.schema.deprecated.phpt b/tests/DI/Compiler.extension.schema.deprecated.phpt new file mode 100644 index 000000000..a064db9d0 --- /dev/null +++ b/tests/DI/Compiler.extension.schema.deprecated.phpt @@ -0,0 +1,43 @@ + Expect::string()->deprecated(), + ]); + } + + + public function loadConfiguration() + { + $this->loadedConfig = $this->config; + } +} + + +Assert::error(function () { + $compiler = new Nette\DI\Compiler; + $compiler->addExtension('foo', $foo = new FooExtension); + createContainer($compiler, ' + foo: + key: hello + '); +}, E_USER_DEPRECATED, "The item 'foo › key' is deprecated.");