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

Breadcrumb

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

function UseFromSameNamespaceSniff::process

* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

Parameters

int $usePointer:

Overrides Sniff::process

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Namespaces/UseFromSameNamespaceSniff.php, line 38

Class

UseFromSameNamespaceSniff

Namespace

SlevomatCodingStandard\Sniffs\Namespaces

Code

public function process(File $phpcsFile, $usePointer) : void {
    if (!UseStatementHelper::isImportUse($phpcsFile, $usePointer)) {
        return;
    }
    $namespaceName = NamespaceHelper::findCurrentNamespaceName($phpcsFile, $usePointer);
    if ($namespaceName === null) {
        $namespaceName = '';
    }
    $usedTypeName = UseStatementHelper::getFullyQualifiedTypeNameFromUse($phpcsFile, $usePointer);
    if (!StringHelper::startsWith($usedTypeName, $namespaceName)) {
        return;
    }
    $asPointer = $this->findAsPointer($phpcsFile, $usePointer);
    if ($asPointer !== null) {
        return;
    }
    $usedTypeNameRest = substr($usedTypeName, strlen($namespaceName));
    if (!NamespaceHelper::isFullyQualifiedName($usedTypeNameRest) && $namespaceName !== '') {
        return;
    }
    if (NamespaceHelper::hasNamespace($usedTypeNameRest)) {
        return;
    }
    $fix = $phpcsFile->addFixableError(sprintf('Use %s is from the same namespace – that is prohibited.', $usedTypeName), $usePointer, self::CODE_USE_FROM_SAME_NAMESPACE);
    if (!$fix) {
        return;
    }
    $endPointer = TokenHelper::findNext($phpcsFile, T_SEMICOLON, $usePointer) + 1;
    $phpcsFile->fixer
        ->beginChangeset();
    FixerHelper::removeBetweenIncluding($phpcsFile, $usePointer, $endPointer);
    $phpcsFile->fixer
        ->endChangeset();
}

API Navigation

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