From f5f77aa6450c6bec0fda8b7072fec6624cea4580 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 27 Jan 2022 20:31:28 +0100 Subject: [PATCH] removed code duplication --- src/QueryReflection/PlaceholderValidation.php | 32 ++++--------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/src/QueryReflection/PlaceholderValidation.php b/src/QueryReflection/PlaceholderValidation.php index 41d38f628..5e7f8a996 100644 --- a/src/QueryReflection/PlaceholderValidation.php +++ b/src/QueryReflection/PlaceholderValidation.php @@ -39,30 +39,6 @@ private function checkErrors(string $queryString, array $parameters): iterable $queryReflection = new QueryReflection(); $placeholderCount = $queryReflection->countPlaceholders($queryString); - $parameterCount = \count($parameters); - $minParameterCount = 0; - foreach ($parameters as $parameter) { - if ($parameter->isOptional) { - continue; - } - ++$minParameterCount; - } - - if (0 === $parameterCount && 0 === $minParameterCount) { - if (0 === $placeholderCount) { - return; - } - - $placeholderExpectation = sprintf('Query expects %s placeholder', $placeholderCount); - if ($placeholderCount > 1) { - $placeholderExpectation = sprintf('Query expects %s placeholders', $placeholderCount); - } - - yield sprintf($placeholderExpectation.', but no values are given.', $placeholderCount); - - return; - } - yield from $this->checkParameterValues($queryString, $parameters, $placeholderCount); } @@ -84,13 +60,19 @@ private function checkParameterValues(string $queryString, array $parameters, in ++$minParameterCount; } + if (0 === $parameterCount && 0 === $minParameterCount && 0 === $placeholderCount) { + return; + } + if ($parameterCount !== $placeholderCount && $placeholderCount !== $minParameterCount) { $placeholderExpectation = sprintf('Query expects %s placeholder', $placeholderCount); if ($placeholderCount > 1) { $placeholderExpectation = sprintf('Query expects %s placeholders', $placeholderCount); } - if ($minParameterCount !== $parameterCount) { + if (0 === $parameterCount) { + $parameterActual = 'but no values are given'; + } elseif ($minParameterCount !== $parameterCount) { $parameterActual = sprintf('but %s values are given', $minParameterCount.'-'.$parameterCount); } else { $parameterActual = sprintf('but %s value is given', $parameterCount);