File manager - Edit - /var/www/payraty/helpdesk/vendor/rector/rector/packages/ReadWrite/ReadNodeAnalyzer/VariableReadNodeAnalyzer.php
Back
<?php declare (strict_types=1); namespace Rector\ReadWrite\ReadNodeAnalyzer; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Variable; use Rector\NodeNestingScope\ParentScopeFinder; use Rector\ReadWrite\Contract\ReadNodeAnalyzerInterface; use Rector\ReadWrite\NodeFinder\NodeUsageFinder; /** * @implements ReadNodeAnalyzerInterface<Variable> */ final class VariableReadNodeAnalyzer implements ReadNodeAnalyzerInterface { /** * @readonly * @var \Rector\NodeNestingScope\ParentScopeFinder */ private $parentScopeFinder; /** * @readonly * @var \Rector\ReadWrite\NodeFinder\NodeUsageFinder */ private $nodeUsageFinder; /** * @readonly * @var \Rector\ReadWrite\ReadNodeAnalyzer\JustReadExprAnalyzer */ private $justReadExprAnalyzer; public function __construct(ParentScopeFinder $parentScopeFinder, NodeUsageFinder $nodeUsageFinder, \Rector\ReadWrite\ReadNodeAnalyzer\JustReadExprAnalyzer $justReadExprAnalyzer) { $this->parentScopeFinder = $parentScopeFinder; $this->nodeUsageFinder = $nodeUsageFinder; $this->justReadExprAnalyzer = $justReadExprAnalyzer; } public function supports(Expr $expr) : bool { return $expr instanceof Variable; } /** * @param Variable $expr */ public function isRead(Expr $expr) : bool { $parentScope = $this->parentScopeFinder->find($expr); if ($parentScope === null) { return \false; } $variableUsages = $this->nodeUsageFinder->findVariableUsages((array) $parentScope->stmts, $expr); foreach ($variableUsages as $variableUsage) { if ($this->justReadExprAnalyzer->isReadContext($variableUsage)) { return \true; } } return \false; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings