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

Breadcrumb

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

function ReferencedNameHelper::createAllReferencedNames

*

Return value

list<ReferencedName>

1 call to ReferencedNameHelper::createAllReferencedNames()
ReferencedNameHelper::getAllReferencedNames in vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/ReferencedNameHelper.php
*

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/ReferencedNameHelper.php, line 132

Class

ReferencedNameHelper
@internal

Namespace

SlevomatCodingStandard\Helpers

Code

private static function createAllReferencedNames(File $phpcsFile, int $openTagPointer) : array {
    $referencedNames = [];
    $beginSearchAtPointer = $openTagPointer + 1;
    $nameTokenCodes = TokenHelper::getNameTokenCodes();
    $nameTokenCodes[] = T_DOUBLE_QUOTED_STRING;
    $nameTokenCodes[] = T_HEREDOC;
    $tokens = $phpcsFile->getTokens();
    while (true) {
        $nameStartPointer = TokenHelper::findNext($phpcsFile, $nameTokenCodes, $beginSearchAtPointer);
        if ($nameStartPointer === null) {
            break;
        }
        // Find referenced names inside double quotes string
        if (self::isNeedParsedContent($tokens[$nameStartPointer]['code'])) {
            $content = $tokens[$nameStartPointer]['content'];
            $currentPointer = $nameStartPointer + 1;
            while (self::isNeedParsedContent($tokens[$currentPointer]['code'])) {
                $content .= $tokens[$currentPointer]['content'];
                $currentPointer++;
            }
            $names = self::getReferencedNamesFromString($content);
            foreach ($names as $name) {
                $referencedNames[] = new ReferencedName($name, $nameStartPointer, $nameStartPointer, ReferencedName::TYPE_CLASS);
            }
            $beginSearchAtPointer = $currentPointer;
            continue;
        }
        // Attributes are parsed in specific method
        $attributeStartPointerBefore = TokenHelper::findPrevious($phpcsFile, T_ATTRIBUTE, $nameStartPointer - 1, $beginSearchAtPointer);
        if ($attributeStartPointerBefore !== null) {
            if ($tokens[$attributeStartPointerBefore]['attribute_closer'] > $nameStartPointer) {
                $beginSearchAtPointer = $tokens[$attributeStartPointerBefore]['attribute_closer'] + 1;
                continue;
            }
        }
        if (!self::isReferencedName($phpcsFile, $nameStartPointer)) {
            
            /** @var int $beginSearchAtPointer */
            $beginSearchAtPointer = TokenHelper::findNextExcluding($phpcsFile, array_merge(TokenHelper::$ineffectiveTokenCodes, $nameTokenCodes), $nameStartPointer + 1);
            continue;
        }
        $nameEndPointer = self::getReferencedNameEndPointer($phpcsFile, $nameStartPointer);
        $referencedNames[] = new ReferencedName(self::getReferenceName($phpcsFile, $nameStartPointer, $nameEndPointer), $nameStartPointer, $nameEndPointer, self::getReferenceType($phpcsFile, $nameStartPointer, $nameEndPointer));
        $beginSearchAtPointer = $nameEndPointer + 1;
    }
    return $referencedNames;
}

API Navigation

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