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

Breadcrumb

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

function PropertyDeclarationSniff::process

* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

Parameters

int $modifierPointer:

Overrides Sniff::process

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Classes/PropertyDeclarationSniff.php, line 80

Class

PropertyDeclarationSniff

Namespace

SlevomatCodingStandard\Sniffs\Classes

Code

public function process(File $phpcsFile, $modifierPointer) : void {
    $tokens = $phpcsFile->getTokens();
    $asPointer = TokenHelper::findPreviousEffective($phpcsFile, $modifierPointer - 1);
    if ($tokens[$asPointer]['code'] === T_AS) {
        return;
    }
    $nextPointer = TokenHelper::findNextEffective($phpcsFile, $modifierPointer + 1);
    if (in_array($tokens[$nextPointer]['code'], TokenHelper::$propertyModifiersTokenCodes, true)) {
        // We don't want to report the same property twice
        return;
    }
    if ($tokens[$nextPointer]['code'] === T_DOUBLE_COLON) {
        // Ignore static::
        return;
    }
    $propertyPointer = TokenHelper::findNext($phpcsFile, [
        T_FUNCTION,
        T_CONST,
        T_VARIABLE,
    ], $modifierPointer + 1);
    if ($propertyPointer === null || $tokens[$propertyPointer]['code'] !== T_VARIABLE) {
        return;
    }
    if (!PropertyHelper::isProperty($phpcsFile, $propertyPointer, $this->checkPromoted)) {
        return;
    }
    $firstModifierPointer = $modifierPointer;
    do {
        $previousPointer = TokenHelper::findPreviousEffective($phpcsFile, $firstModifierPointer - 1);
        if (!in_array($tokens[$previousPointer]['code'], TokenHelper::$propertyModifiersTokenCodes, true)) {
            break;
        }
        $firstModifierPointer = $previousPointer;
    } while (true);
    $this->checkModifiersOrder($phpcsFile, $propertyPointer, $firstModifierPointer, $modifierPointer);
    $this->checkSpacesBetweenModifiers($phpcsFile, $propertyPointer, $firstModifierPointer, $modifierPointer);
    $this->checkTypeHintSpacing($phpcsFile, $propertyPointer, $modifierPointer);
}
RSS feed
Powered by Drupal