ACIL FM
Dark
Refresh
Current DIR:
/opt/cpanel/ea-wappspector/vendor/rector/rector/rules/Php70/Rector/FuncCall
/
opt
cpanel
ea-wappspector
vendor
rector
rector
rules
Php70
Rector
FuncCall
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
CallUserMethodRector.php
2.14 MB
chmod
View
DL
Edit
Rename
Delete
EregToPregMatchRector.php
6.48 MB
chmod
View
DL
Edit
Rename
Delete
MultiDirnameRector.php
3.02 MB
chmod
View
DL
Edit
Rename
Delete
RandomFunctionRector.php
2.96 MB
chmod
View
DL
Edit
Rename
Delete
RenameMktimeWithoutArgsToTimeRector.php
1.66 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/cpanel/ea-wappspector/vendor/rector/rector/rules/Php70/Rector/FuncCall/MultiDirnameRector.php
<?php declare (strict_types=1); namespace Rector\Php70\Rector\FuncCall; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Scalar\LNumber; use Rector\Rector\AbstractRector; use Rector\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\Php70\Rector\FuncCall\MultiDirnameRector\MultiDirnameRectorTest */ final class MultiDirnameRector extends AbstractRector implements MinPhpVersionInterface { /** * @var string */ private const DIRNAME = 'dirname'; /** * @var int */ private $nestingLevel = 0; public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Changes multiple dirname() calls to one with nesting level', [new CodeSample('dirname(dirname($path));', 'dirname($path, 2);')]); } /** * @return array<class-string<Node>> */ public function getNodeTypes() : array { return [FuncCall::class]; } /** * @param FuncCall $node */ public function refactor(Node $node) : ?Node { $this->nestingLevel = 0; if (!$this->isName($node, self::DIRNAME)) { return null; } $activeFuncCallNode = $node; $lastFuncCallNode = $node; while (($activeFuncCallNode = $this->matchNestedDirnameFuncCall($activeFuncCallNode)) instanceof FuncCall) { $lastFuncCallNode = $activeFuncCallNode; } // nothing to improve if ($this->shouldSkip()) { return null; } $node->args[0] = $lastFuncCallNode->args[0]; $node->args[1] = new Arg(new LNumber($this->nestingLevel)); return $node; } public function provideMinPhpVersion() : int { return PhpVersionFeature::DIRNAME_LEVELS; } private function shouldSkip() : bool { return $this->nestingLevel < 2; } private function matchNestedDirnameFuncCall(FuncCall $funcCall) : ?FuncCall { if (!$this->isName($funcCall, self::DIRNAME)) { return null; } if ($funcCall->isFirstClassCallable()) { return null; } $args = $funcCall->getArgs(); if (\count($args) >= 3) { return null; } // dirname($path, <LEVEL>); if (\count($args) === 2) { if (!$args[1]->value instanceof LNumber) { return null; } /** @var LNumber $levelNumber */ $levelNumber = $args[1]->value; $this->nestingLevel += $levelNumber->value; } else { ++$this->nestingLevel; } $nestedFuncCallNode = $args[0]->value; if (!$nestedFuncCallNode instanceof FuncCall) { return null; } if ($this->isName($nestedFuncCallNode, self::DIRNAME)) { return $nestedFuncCallNode; } return null; } }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply