Skip to content

Commit 51eccf5

Browse files
authored
removed code duplication (#219)
1 parent 88dac16 commit 51eccf5

File tree

1 file changed

+7
-25
lines changed

1 file changed

+7
-25
lines changed

src/QueryReflection/PlaceholderValidation.php

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -39,30 +39,6 @@ private function checkErrors(string $queryString, array $parameters): iterable
3939
$queryReflection = new QueryReflection();
4040
$placeholderCount = $queryReflection->countPlaceholders($queryString);
4141

42-
$parameterCount = \count($parameters);
43-
$minParameterCount = 0;
44-
foreach ($parameters as $parameter) {
45-
if ($parameter->isOptional) {
46-
continue;
47-
}
48-
++$minParameterCount;
49-
}
50-
51-
if (0 === $parameterCount && 0 === $minParameterCount) {
52-
if (0 === $placeholderCount) {
53-
return;
54-
}
55-
56-
$placeholderExpectation = sprintf('Query expects %s placeholder', $placeholderCount);
57-
if ($placeholderCount > 1) {
58-
$placeholderExpectation = sprintf('Query expects %s placeholders', $placeholderCount);
59-
}
60-
61-
yield sprintf($placeholderExpectation.', but no values are given.', $placeholderCount);
62-
63-
return;
64-
}
65-
6642
yield from $this->checkParameterValues($queryString, $parameters, $placeholderCount);
6743
}
6844

@@ -84,13 +60,19 @@ private function checkParameterValues(string $queryString, array $parameters, in
8460
++$minParameterCount;
8561
}
8662

63+
if (0 === $parameterCount && 0 === $minParameterCount && 0 === $placeholderCount) {
64+
return;
65+
}
66+
8767
if ($parameterCount !== $placeholderCount && $placeholderCount !== $minParameterCount) {
8868
$placeholderExpectation = sprintf('Query expects %s placeholder', $placeholderCount);
8969
if ($placeholderCount > 1) {
9070
$placeholderExpectation = sprintf('Query expects %s placeholders', $placeholderCount);
9171
}
9272

93-
if ($minParameterCount !== $parameterCount) {
73+
if (0 === $parameterCount) {
74+
$parameterActual = 'but no values are given';
75+
} elseif ($minParameterCount !== $parameterCount) {
9476
$parameterActual = sprintf('but %s values are given', $minParameterCount.'-'.$parameterCount);
9577
} else {
9678
$parameterActual = sprintf('but %s value is given', $parameterCount);

0 commit comments

Comments
 (0)