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