function ClassMemberSpacingSniff::findNextMember
1 call to ClassMemberSpacingSniff::findNextMember()
- ClassMemberSpacingSniff::process in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ Classes/ ClassMemberSpacingSniff.php - * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Sniffs/ Classes/ ClassMemberSpacingSniff.php, line 148
Class
Namespace
SlevomatCodingStandard\Sniffs\ClassesCode
private function findNextMember(File $phpcsFile, int $classPointer, int $previousMemberPointer) : ?int {
$tokens = $phpcsFile->getTokens();
$memberPointer = $previousMemberPointer;
do {
$memberPointer = TokenHelper::findNext($phpcsFile, [
T_USE,
T_CONST,
T_VAR,
T_PUBLIC,
T_PROTECTED,
T_PRIVATE,
T_READONLY,
T_STATIC,
T_FUNCTION,
T_ENUM_CASE,
], $memberPointer + 1, $tokens[$classPointer]['scope_closer']);
if ($memberPointer === null) {
return null;
}
if ($tokens[$memberPointer]['code'] === T_USE) {
if (!UseStatementHelper::isTraitUse($phpcsFile, $memberPointer)) {
continue;
}
}
elseif (in_array($tokens[$memberPointer]['code'], [
T_VAR,
T_PUBLIC,
T_PROTECTED,
T_PRIVATE,
T_READONLY,
T_STATIC,
], true)) {
$asPointer = TokenHelper::findPreviousEffective($phpcsFile, $memberPointer - 1);
if ($tokens[$asPointer]['code'] === T_AS) {
continue;
}
$propertyPointer = TokenHelper::findNext($phpcsFile, [
T_VARIABLE,
T_FUNCTION,
T_CONST,
T_ENUM_CASE,
], $memberPointer + 1);
if ($propertyPointer === null || $tokens[$propertyPointer]['code'] !== T_VARIABLE || !PropertyHelper::isProperty($phpcsFile, $propertyPointer)) {
continue;
}
$memberPointer = $propertyPointer;
}
if (ScopeHelper::isInSameScope($phpcsFile, $memberPointer, $previousMemberPointer)) {
break;
}
} while (true);
return $memberPointer;
}