in src/Fixers/ClientUpgradeFixer/ClientVar.php [190:219]
public static function getClientVarsFromTypehint(Tokens $tokens, array $clientShortNames): array
{
$clientVars = [];
foreach ($tokens as $index => $token) {
// get variables which are set directly
if (!in_array($token->getContent(), $clientShortNames)) {
continue;
}
$varToken = $tokens[$tokens->getNextMeaningfulToken($index)];
if (!$varToken->isGivenKind(T_VARIABLE)) {
continue;
}
$prevToken = $tokens[$tokens->getPrevMeaningfulToken($index)];
$varName = $varToken->getContent();
$parent = null;
if (in_array($prevToken->getContent(), ['protected', 'private', 'public'])) {
$parent = '$this';
$varName = substr($varName, 1);
} elseif ($prevToken->getContent() === 'static') {
$parent = 'self';
}
if ($clientClass = array_search($token->getContent(), $clientShortNames)) {
$clientVars[] = new ClientVar($varName, $clientClass, $parent);
}
}
return $clientVars;
}