From 693818858cb1305647f019b6ba7c12d12134b7de Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 15 Dec 2021 19:45:29 +0100 Subject: [PATCH] Resolver: processing of functions like not() moved to PhpGenerator --- src/DI/PhpGenerator.php | 9 +++++++++ src/DI/Resolver.php | 10 ---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/DI/PhpGenerator.php b/src/DI/PhpGenerator.php index 698e1c0e8..1f893abbf 100644 --- a/src/DI/PhpGenerator.php +++ b/src/DI/PhpGenerator.php @@ -112,6 +112,15 @@ public function formatStatement(Statement $statement): string case is_string($entity) && str_contains($entity, '?'): // PHP literal return $this->formatPhp($entity, $arguments); + case $entity === 'not': + return $this->formatPhp('!(?)', $arguments); + + case $entity === 'bool': + case $entity === 'int': + case $entity === 'float': + case $entity === 'string': + return $this->formatPhp('?::?(?, ?)', [Helpers::class, 'convertType', $arguments[0], $entity]); + case is_string($entity): // create class return $arguments ? $this->formatPhp("new $entity(...?:)", [$arguments]) diff --git a/src/DI/Resolver.php b/src/DI/Resolver.php index 729bee920..73f5ea28b 100644 --- a/src/DI/Resolver.php +++ b/src/DI/Resolver.php @@ -192,13 +192,6 @@ public function completeStatement(Statement $statement, bool $currentServiceAllo break; case $entity === 'not': - if (count($arguments) !== 1) { - throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments))); - } - - $entity = ['', '!']; - break; - case $entity === 'bool': case $entity === 'int': case $entity === 'float': @@ -206,9 +199,6 @@ public function completeStatement(Statement $statement, bool $currentServiceAllo if (count($arguments) !== 1) { throw new ServiceCreationException(sprintf('Function %s() expects 1 parameter, %s given.', $entity, count($arguments))); } - - $arguments = [$arguments[0], $entity]; - $entity = [Helpers::class, 'convertType']; break; case is_string($entity): // create class