REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 2.89 KB
Close
/opt/cpanel/ea-wappspector/vendor/rector/rector/rules/Removing/NodeManipulator/ComplexNodeRemover.php
Text
Base64
<?php declare (strict_types=1); namespace Rector\Removing\NodeManipulator; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover; use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\NodeNameResolver\NodeNameResolver; final class ComplexNodeRemover { /** * @readonly * @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory */ private $phpDocInfoFactory; /** * @readonly * @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover */ private $phpDocTagRemover; /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; /** * @readonly * @var \Rector\Comments\NodeDocBlock\DocBlockUpdater */ private $docBlockUpdater; public function __construct(PhpDocInfoFactory $phpDocInfoFactory, PhpDocTagRemover $phpDocTagRemover, NodeNameResolver $nodeNameResolver, DocBlockUpdater $docBlockUpdater) { $this->phpDocInfoFactory = $phpDocInfoFactory; $this->phpDocTagRemover = $phpDocTagRemover; $this->nodeNameResolver = $nodeNameResolver; $this->docBlockUpdater = $docBlockUpdater; } /** * @param int[] $paramKeysToBeRemoved * @return int[] */ public function processRemoveParamWithKeys(ClassMethod $classMethod, array $paramKeysToBeRemoved) : array { $totalKeys = \count($classMethod->params) - 1; $removedParamKeys = []; $phpdocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod); foreach ($paramKeysToBeRemoved as $paramKeyToBeRemoved) { $startNextKey = $paramKeyToBeRemoved + 1; for ($nextKey = $startNextKey; $nextKey <= $totalKeys; ++$nextKey) { if (!isset($classMethod->params[$nextKey])) { // no next param, break the inner loop, remove the param break; } if (\in_array($nextKey, $paramKeysToBeRemoved, \true)) { // keep searching next key not in $paramKeysToBeRemoved continue; } return []; } $paramName = (string) $this->nodeNameResolver->getName($classMethod->params[$paramKeyToBeRemoved]); unset($classMethod->params[$paramKeyToBeRemoved]); $paramTagValueByName = $phpdocInfo->getParamTagValueByName($paramName); if ($paramTagValueByName instanceof ParamTagValueNode) { $this->phpDocTagRemover->removeTagValueFromNode($phpdocInfo, $paramTagValueByName); $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($classMethod); } $removedParamKeys[] = $paramKeyToBeRemoved; } return $removedParamKeys; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
ComplexNodeRemover.php
2.89 KB
lrw-r--r--
2024-11-08 13:59:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).