SlevomatCodingStandard\Helpers\UseStatementHelper::getFullyQualifiedTypeNameFromUse PHP Method

getFullyQualifiedTypeNameFromUse() public static method

public static getFullyQualifiedTypeNameFromUse ( PHP_CodeSniffer_File $phpcsFile, integer $usePointer ) : string
$phpcsFile PHP_CodeSniffer_File
$usePointer integer
return string
    public static function getFullyQualifiedTypeNameFromUse(PHP_CodeSniffer_File $phpcsFile, $usePointer)
    {
        $nameEndPointer = $phpcsFile->findNext([T_SEMICOLON, T_AS, T_COMMA], $usePointer + 1);
        $tokens = $phpcsFile->getTokens();
        if ($tokens[$nameEndPointer - 1]['code'] === T_WHITESPACE) {
            $nameEndPointer = TokenHelper::findPreviousExcluding($phpcsFile, [T_WHITESPACE], $nameEndPointer - 1) + 1;
        }
        $nameStartPointer = $phpcsFile->findNext(TokenHelper::$nameTokenCodes, $usePointer + 1, $nameEndPointer);
        if (in_array($tokens[$nameStartPointer]['content'], ['const', 'function'], true)) {
            $nameStartPointer = $phpcsFile->findNext(TokenHelper::$nameTokenCodes, $nameStartPointer + 1, $nameEndPointer);
        }
        $name = TokenHelper::getContent($phpcsFile, $nameStartPointer, $nameEndPointer);
        return NamespaceHelper::normalizeToCanonicalName($name);
    }

Usage Example

 /**
  * @param \PHP_CodeSniffer_File $phpcsFile
  * @param integer $usePointer
  */
 public function process(PHP_CodeSniffer_File $phpcsFile, $usePointer)
 {
     if (UseStatementHelper::isAnonymousFunctionUse($phpcsFile, $usePointer) || UseStatementHelper::isTraitUse($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)) {
         $fix = $phpcsFile->addFixableError(sprintf('Use %s is from the same namespace – that is prohibited', $usedTypeName), $usePointer, self::CODE_USE_FROM_SAME_NAMESPACE);
         if ($fix) {
             $phpcsFile->fixer->beginChangeset();
             $endPointer = $phpcsFile->findNext(T_SEMICOLON, $usePointer) + 1;
             for ($i = $usePointer; $i <= $endPointer; $i++) {
                 $phpcsFile->fixer->replaceToken($i, '');
             }
             $phpcsFile->fixer->endChangeset();
         }
     }
 }
All Usage Examples Of SlevomatCodingStandard\Helpers\UseStatementHelper::getFullyQualifiedTypeNameFromUse