Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ClassMemberSpacingSniff.php

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

ClassMemberSpacingSniff

Namespace

SlevomatCodingStandard\Sniffs\Classes

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal