function ForbiddenClassesSniff::checkReferences
*
Parameters
list<array{fullyQualifiedName: string, startPointer: int|null, endPointer: int|null}> $references: * @param array<string, (string|null)> $forbiddenNames
1 call to ForbiddenClassesSniff::checkReferences()
- ForbiddenClassesSniff::process in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ PHP/ ForbiddenClassesSniff.php - * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ PHP/ ForbiddenClassesSniff.php, line 144
Class
Namespace
SlevomatCodingStandard\Sniffs\PHPCode
private function checkReferences(File $phpcsFile, int $tokenPointer, array $references, array $forbiddenNames, bool $isFixable = true) : void {
$token = $phpcsFile->getTokens()[$tokenPointer];
$details = [
T_NEW => [
'class',
self::CODE_FORBIDDEN_CLASS,
],
T_DOUBLE_COLON => [
'class',
self::CODE_FORBIDDEN_CLASS,
],
T_EXTENDS => [
'as a parent class',
self::CODE_FORBIDDEN_PARENT_CLASS,
],
T_IMPLEMENTS => [
'interface',
self::CODE_FORBIDDEN_INTERFACE,
],
T_USE => [
'trait',
self::CODE_FORBIDDEN_TRAIT,
],
];
foreach ($references as $reference) {
if (!array_key_exists($reference['fullyQualifiedName'], $forbiddenNames)) {
continue;
}
$alternative = $forbiddenNames[$reference['fullyQualifiedName']];
[
$nameType,
$code,
] = $details[$token['code']];
if ($alternative === null) {
$phpcsFile->addError(sprintf('Usage of %s %s is forbidden.', $reference['fullyQualifiedName'], $nameType), $reference['startPointer'], $code);
}
elseif (!$isFixable) {
$phpcsFile->addError(sprintf('Usage of %s %s is forbidden, use %s instead.', $reference['fullyQualifiedName'], $nameType, $alternative), $reference['startPointer'], $code);
}
else {
$fix = $phpcsFile->addFixableError(sprintf('Usage of %s %s is forbidden, use %s instead.', $reference['fullyQualifiedName'], $nameType, $alternative), $reference['startPointer'], $code);
if (!$fix) {
continue;
}
$phpcsFile->fixer
->beginChangeset();
FixerHelper::change($phpcsFile, $reference['startPointer'], $reference['endPointer'], $alternative);
$phpcsFile->fixer
->endChangeset();
}
}
}