ACIL FM
Dark
Refresh
Current DIR:
/opt/cpanel/ea-wappspector/vendor/rector/rector/src/NodeAnalyzer
/
opt
cpanel
ea-wappspector
vendor
rector
rector
src
NodeAnalyzer
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
ArgsAnalyzer.php
418 B
chmod
View
DL
Edit
Rename
Delete
BinaryOpAnalyzer.php
1.14 MB
chmod
View
DL
Edit
Rename
Delete
CallAnalyzer.php
2.37 MB
chmod
View
DL
Edit
Rename
Delete
ClassAnalyzer.php
463 B
chmod
View
DL
Edit
Rename
Delete
CompactFuncCallAnalyzer.php
2.06 MB
chmod
View
DL
Edit
Rename
Delete
ConstFetchAnalyzer.php
1.02 MB
chmod
View
DL
Edit
Rename
Delete
DoctrineEntityAnalyzer.php
1.99 MB
chmod
View
DL
Edit
Rename
Delete
ExprAnalyzer.php
3.62 MB
chmod
View
DL
Edit
Rename
Delete
MagicClassMethodAnalyzer.php
717 B
chmod
View
DL
Edit
Rename
Delete
ParamAnalyzer.php
5.39 MB
chmod
View
DL
Edit
Rename
Delete
PropertyAnalyzer.php
1.66 MB
chmod
View
DL
Edit
Rename
Delete
PropertyFetchAnalyzer.php
7.38 MB
chmod
View
DL
Edit
Rename
Delete
PropertyPresenceChecker.php
5.91 MB
chmod
View
DL
Edit
Rename
Delete
ScopeAnalyzer.php
683 B
chmod
View
DL
Edit
Rename
Delete
TerminatedNodeAnalyzer.php
5.25 MB
chmod
View
DL
Edit
Rename
Delete
VariableAnalyzer.php
603 B
chmod
View
DL
Edit
Rename
Delete
VariadicAnalyzer.php
1.51 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/cpanel/ea-wappspector/vendor/rector/rector/src/NodeAnalyzer/ParamAnalyzer.php
<?php declare (strict_types=1); namespace Rector\NodeAnalyzer; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\Error; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\Variable; use PhpParser\Node\NullableType; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; use PhpParser\NodeTraverser; use Rector\NodeManipulator\FuncCallManipulator; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PhpParser\Comparing\NodeComparator; use Rector\PhpParser\Node\BetterNodeFinder; final class ParamAnalyzer { /** * @readonly * @var \Rector\PhpParser\Comparing\NodeComparator */ private $nodeComparator; /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; /** * @readonly * @var \Rector\NodeManipulator\FuncCallManipulator */ private $funcCallManipulator; /** * @readonly * @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser */ private $simpleCallableNodeTraverser; /** * @readonly * @var \Rector\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; public function __construct(NodeComparator $nodeComparator, NodeNameResolver $nodeNameResolver, FuncCallManipulator $funcCallManipulator, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, BetterNodeFinder $betterNodeFinder) { $this->nodeComparator = $nodeComparator; $this->nodeNameResolver = $nodeNameResolver; $this->funcCallManipulator = $funcCallManipulator; $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; $this->betterNodeFinder = $betterNodeFinder; } public function isParamUsedInClassMethod(ClassMethod $classMethod, Param $param) : bool { $isParamUsed = \false; if ($param->var instanceof Error) { return \false; } $this->simpleCallableNodeTraverser->traverseNodesWithCallable($classMethod->stmts, function (Node $node) use(&$isParamUsed, $param) : ?int { if ($isParamUsed) { return NodeTraverser::STOP_TRAVERSAL; } if ($this->isUsedAsArg($node, $param)) { $isParamUsed = \true; } // skip nested anonymous class if ($node instanceof Class_ || $node instanceof Function_) { return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; } if ($node instanceof Variable && $this->nodeComparator->areNodesEqual($node, $param->var)) { $isParamUsed = \true; } if ($node instanceof Closure && $this->isVariableInClosureUses($node, $param->var)) { $isParamUsed = \true; } if ($this->isParamUsed($node, $param)) { $isParamUsed = \true; } return null; }); return $isParamUsed; } /** * @param Param[] $params */ public function hasPropertyPromotion(array $params) : bool { foreach ($params as $param) { if ($param->flags !== 0) { return \true; } } return \false; } public function isNullable(Param $param) : bool { if ($param->variadic) { return \false; } if ($param->type === null) { return \false; } return $param->type instanceof NullableType; } public function isParamReassign(ClassMethod $classMethod, Param $param) : bool { $paramName = (string) $this->nodeNameResolver->getName($param->var); return (bool) $this->betterNodeFinder->findFirstInFunctionLikeScoped($classMethod, function (Node $node) use($paramName) : bool { if (!$node instanceof Assign) { return \false; } if (!$node->var instanceof Variable) { return \false; } return $this->nodeNameResolver->isName($node->var, $paramName); }); } private function isVariableInClosureUses(Closure $closure, Variable $variable) : bool { foreach ($closure->uses as $use) { if ($this->nodeComparator->areNodesEqual($use->var, $variable)) { return \true; } } return \false; } private function isUsedAsArg(Node $node, Param $param) : bool { if ($node instanceof New_ || $node instanceof CallLike) { if ($node->isFirstClassCallable()) { return \false; } foreach ($node->getArgs() as $arg) { if ($this->nodeComparator->areNodesEqual($param->var, $arg->value)) { return \true; } } } return \false; } private function isParamUsed(Node $node, Param $param) : bool { if (!$node instanceof FuncCall) { return \false; } if (!$this->nodeNameResolver->isName($node, 'compact')) { return \false; } $arguments = $this->funcCallManipulator->extractArgumentsFromCompactFuncCalls([$node]); return $this->nodeNameResolver->isNames($param, $arguments); } }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply