Skip to content

Commit 4e6b69f

Browse files
committed
Added rule identifiers
1 parent 61a6233 commit 4e6b69f

File tree

5 files changed

+20
-14
lines changed

5 files changed

+20
-14
lines changed

src/Rules/QueryPlanAnalyzerRule.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use PhpParser\Node\Expr\New_;
1111
use PhpParser\Node\Name\FullyQualified;
1212
use PHPStan\Analyser\Scope;
13+
use PHPStan\Rules\IdentifierRuleError;
1314
use PHPStan\Rules\Rule;
1415
use PHPStan\Rules\RuleError;
1516
use PHPStan\Rules\RuleErrorBuilder;
@@ -100,7 +101,7 @@ public function processNode(Node $callLike, Scope $scope): array
100101
/**
101102
* @param MethodCall|New_ $callLike
102103
*
103-
* @return RuleError[]
104+
* @return list<IdentifierRuleError>
104105
*/
105106
private function analyze(CallLike $callLike, Scope $scope): array
106107
{
@@ -144,6 +145,7 @@ private function analyze(CallLike $callLike, Scope $scope): array
144145
$table
145146
)
146147
)
148+
->identifier('dba.missingIndex')
147149
->line($callLike->getStartLine())
148150
->tip('see Mysql Docs https://dev.mysql.com/doc/refman/8.0/en/select-optimization.html')
149151
->build();
@@ -156,6 +158,7 @@ private function analyze(CallLike $callLike, Scope $scope): array
156158
$table
157159
)
158160
)
161+
->identifier('dba.tableScan')
159162
->line($callLike->getStartLine())
160163
->tip('see Mysql Docs https://dev.mysql.com/doc/refman/8.0/en/table-scan-avoidance.html')
161164
->build();
@@ -168,6 +171,7 @@ private function analyze(CallLike $callLike, Scope $scope): array
168171
$table
169172
)
170173
)
174+
->identifier('dba.unindexedReads')
171175
->line($callLike->getStartLine())
172176
->tip('see Mysql Docs https://dev.mysql.com/doc/refman/8.0/en/select-optimization.html')
173177
->build();

src/Rules/SyntaxErrorInDibiPreparedStatementMethodRule.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use PhpParser\Node\Name\FullyQualified;
1212
use PHPStan\Analyser\Scope;
1313
use PHPStan\Reflection\MethodReflection;
14+
use PHPStan\Rules\IdentifierRuleError;
1415
use PHPStan\Rules\Rule;
1516
use PHPStan\Rules\RuleError;
1617
use PHPStan\Rules\RuleErrorBuilder;
@@ -92,7 +93,7 @@ public function processNode(Node $callLike, Scope $scope): array
9293
/**
9394
* @param MethodCall|New_ $callLike
9495
*
95-
* @return RuleError[]
96+
* @return list<IdentifierRuleError>
9697
*/
9798
private function checkErrors(CallLike $callLike, Scope $scope, MethodReflection $methodReflection): array
9899
{
@@ -171,7 +172,7 @@ private function checkErrors(CallLike $callLike, Scope $scope, MethodReflection
171172
}
172173

173174
return [
174-
RuleErrorBuilder::message($placeholderExpectation . ', ' . $parameterActual . '.')->line($callLike->getStartLine())->build(),
175+
RuleErrorBuilder::message($placeholderExpectation . ', ' . $parameterActual . '.')->identifier('dba.placeholderMismatch')->line($callLike->getStartLine())->build(),
175176
];
176177
}
177178
}
@@ -196,7 +197,7 @@ private function checkErrors(CallLike $callLike, Scope $scope, MethodReflection
196197
$validity = $queryReflection->validateQueryString($queryParameters[0]);
197198

198199
if (null !== $validity) {
199-
return [RuleErrorBuilder::message($validity->asRuleMessage())->line($callLike->getStartLine())->build()];
200+
return [RuleErrorBuilder::message($validity->asRuleMessage())->identifier('dba.syntaxError')->line($callLike->getStartLine())->build()];
200201
}
201202

202203
$result = $queryReflection->getResultType($queryParameters[0], QueryReflector::FETCH_TYPE_BOTH);
@@ -206,11 +207,11 @@ private function checkErrors(CallLike $callLike, Scope $scope, MethodReflection
206207
$columnsInResult = \count($result->getValueTypes()) / 2;
207208

208209
if ('fetchPairs' === $methodReflection->getName() && 2 !== $columnsInResult) {
209-
return [RuleErrorBuilder::message('fetchPairs requires exactly 2 selected columns, got ' . $columnsInResult . '.')->line($callLike->getStartLine())->build()];
210+
return [RuleErrorBuilder::message('fetchPairs requires exactly 2 selected columns, got ' . $columnsInResult . '.')->identifier('dba.error')->line($callLike->getStartLine())->build()];
210211
}
211212

212213
if ('fetchSingle' === $methodReflection->getName() && 1 !== $columnsInResult) {
213-
return [RuleErrorBuilder::message('fetchSingle requires exactly 1 selected column, got ' . $columnsInResult . '.')->line($callLike->getStartLine())->build()];
214+
return [RuleErrorBuilder::message('fetchSingle requires exactly 1 selected column, got ' . $columnsInResult . '.')->identifier('dba.error')->line($callLike->getStartLine())->build()];
214215
}
215216
}
216217

src/Rules/SyntaxErrorInPreparedStatementMethodRule.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use PhpParser\Node\Expr\New_;
1111
use PhpParser\Node\Name\FullyQualified;
1212
use PHPStan\Analyser\Scope;
13+
use PHPStan\Rules\IdentifierRuleError;
1314
use PHPStan\Rules\Rule;
1415
use PHPStan\Rules\RuleError;
1516
use PHPStan\Rules\RuleErrorBuilder;
@@ -89,7 +90,7 @@ public function processNode(Node $callLike, Scope $scope): array
8990
/**
9091
* @param MethodCall|New_ $callLike
9192
*
92-
* @return RuleError[]
93+
* @return list<IdentifierRuleError>
9394
*/
9495
private function checkErrors(CallLike $callLike, Scope $scope): array
9596
{
@@ -113,7 +114,7 @@ private function checkErrors(CallLike $callLike, Scope $scope): array
113114
$parameters = $queryReflection->resolveParameters($parameterTypes) ?? [];
114115
} catch (UnresolvableQueryException $exception) {
115116
return [
116-
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->line($callLike->getStartLine())->build(),
117+
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->identifier('dba.unresolvableQuery')->line($callLike->getStartLine())->build(),
117118
];
118119
}
119120
}
@@ -144,13 +145,13 @@ private function checkErrors(CallLike $callLike, Scope $scope): array
144145

145146
$ruleErrors = [];
146147
foreach ($errors as $error) {
147-
$ruleErrors[] = RuleErrorBuilder::message($error)->line($callLike->getStartLine())->build();
148+
$ruleErrors[] = RuleErrorBuilder::message($error)->identifier('dba.syntaxError')->line($callLike->getStartLine())->build();
148149
}
149150

150151
return $ruleErrors;
151152
} catch (UnresolvableQueryException $exception) {
152153
return [
153-
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->line($callLike->getStartLine())->build(),
154+
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->identifier('dba.unresolvableQuery')->line($callLike->getStartLine())->build(),
154155
];
155156
}
156157
}

src/Rules/SyntaxErrorInQueryFunctionRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ public function processNode(Node $node, Scope $scope): array
9696
$queryError = $queryReflection->validateQueryString($queryString);
9797
if (null !== $queryError) {
9898
return [
99-
RuleErrorBuilder::message($queryError->asRuleMessage())->line($node->getStartLine())->build(),
99+
RuleErrorBuilder::message($queryError->asRuleMessage())->identifier('dba.syntaxError')->line($node->getStartLine())->build(),
100100
];
101101
}
102102
}
103103
} catch (UnresolvableQueryException $exception) {
104104
return [
105-
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->line($node->getStartLine())->build(),
105+
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->identifier('dba.unresolvableQuery')->line($node->getStartLine())->build(),
106106
];
107107
}
108108

src/Rules/SyntaxErrorInQueryMethodRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ public function processNode(Node $node, Scope $scope): array
9191
$queryError = $queryReflection->validateQueryString($queryString);
9292
if (null !== $queryError) {
9393
return [
94-
RuleErrorBuilder::message($queryError->asRuleMessage())->line($node->getStartLine())->build(),
94+
RuleErrorBuilder::message($queryError->asRuleMessage())->identifier('dba.syntaxError')->line($node->getStartLine())->build(),
9595
];
9696
}
9797
}
9898
} catch (UnresolvableQueryException $exception) {
9999
return [
100-
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->line($node->getStartLine())->build(),
100+
RuleErrorBuilder::message($exception->asRuleMessage())->tip($exception::getTip())->identifier('dba.unresolvableQuery')->line($node->getStartLine())->build(),
101101
];
102102
}
103103

0 commit comments

Comments
 (0)