![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/ |
<?php declare (strict_types=1); namespace Rector\DeadCode\NodeAnalyzer; use PhpParser\Node; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\Include_; use PhpParser\Node\Expr\Variable; use Rector\Core\NodeAnalyzer\CompactFuncCallAnalyzer; use Rector\Core\PhpParser\Printer\BetterStandardPrinter; final class ExprUsedInNodeAnalyzer { /** * @readonly * @var \Rector\DeadCode\NodeAnalyzer\UsedVariableNameAnalyzer */ private $usedVariableNameAnalyzer; /** * @readonly * @var \Rector\Core\NodeAnalyzer\CompactFuncCallAnalyzer */ private $compactFuncCallAnalyzer; /** * @readonly * @var \Rector\Core\PhpParser\Printer\BetterStandardPrinter */ private $betterStandardPrinter; public function __construct(\Rector\DeadCode\NodeAnalyzer\UsedVariableNameAnalyzer $usedVariableNameAnalyzer, CompactFuncCallAnalyzer $compactFuncCallAnalyzer, BetterStandardPrinter $betterStandardPrinter) { $this->usedVariableNameAnalyzer = $usedVariableNameAnalyzer; $this->compactFuncCallAnalyzer = $compactFuncCallAnalyzer; $this->betterStandardPrinter = $betterStandardPrinter; } public function isUsed(Node $node, Variable $variable) : bool { if ($node instanceof Include_) { return \true; } // variable as variable variable need mark as used if ($node instanceof Variable) { $print = $this->betterStandardPrinter->print($node); if (\strncmp($print, '${$', \strlen('${$')) === 0) { return \true; } } if ($node instanceof FuncCall) { return $this->compactFuncCallAnalyzer->isInCompact($node, $variable); } return $this->usedVariableNameAnalyzer->isVariableNamed($node, $variable); } }