in src/Fixers/ClientUpgradeFixer/ClientVar.php [157:188]
public static function getClientVarsFromVarTypehint(Tokens $tokens, array $clientShortNames): array
{
$clientVars = [];
foreach ($tokens as $index => $token) {
// get variables which are set directly
if (!$token->isGivenKind(T_DOC_COMMENT)) {
continue;
}
if (false === strpos($token->getContent(), '@var')) {
continue;
}
$varToken = $tokens[$tokens->getNextMeaningfulToken($index)];
if (!$varToken->isGivenKind(T_VARIABLE)) {
continue;
}
$regex = sprintf('/@var (.*) \\%s/', $varToken->getContent());
if (!preg_match($regex, $token->getContent(), $matches)) {
continue;
}
$shortName = $matches[1];
$varName = $varToken->getContent();
if ($clientClass = array_search($shortName, $clientShortNames)) {
$clientVars[$varName] = new ClientVar($varName, $clientClass);
}
}
return $clientVars;
}