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

Breadcrumb

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

function ReferencedNameHelper::getReferencedNamesFromString

*

Return value

list<string>

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

File

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

Class

ReferencedNameHelper
@internal

Namespace

SlevomatCodingStandard\Helpers

Code

private static function getReferencedNamesFromString(string $content) : array {
    $referencedNames = [];
    $subTokens = token_get_all('<?php ' . $content);
    foreach ($subTokens as $position => $token) {
        if (is_array($token) && $token[0] === T_DOUBLE_COLON) {
            $referencedName = '';
            $tmpPosition = $position - 1;
            while (true) {
                if (!is_array($subTokens[$tmpPosition]) || !in_array($subTokens[$tmpPosition][0], [
                    T_NS_SEPARATOR,
                    T_STRING,
                ], true)) {
                    break;
                }
                $referencedName = $subTokens[$tmpPosition][1] . $referencedName;
                $tmpPosition--;
            }
            $referencedNames[] = $referencedName;
        }
        elseif (is_array($token) && $token[0] === T_NEW) {
            $referencedName = '';
            $tmpPosition = $position + 1;
            while (true) {
                if (!is_array($subTokens[$tmpPosition])) {
                    break;
                }
                if ($subTokens[$tmpPosition][0] === T_WHITESPACE) {
                    $tmpPosition++;
                    continue;
                }
                if (!in_array($subTokens[$tmpPosition][0], [
                    T_STRING,
                    T_NS_SEPARATOR,
                    T_NAME_QUALIFIED,
                    T_NAME_FULLY_QUALIFIED,
                    T_NAME_RELATIVE,
                ], true)) {
                    break;
                }
                $referencedName .= $subTokens[$tmpPosition][1];
                $tmpPosition++;
            }
            if ($referencedName !== '') {
                $referencedNames[] = $referencedName;
            }
        }
    }
    return $referencedNames;
}

API Navigation

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