REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 1.92 KB
Close
//opt/cpanel/ea-wappspector/vendor/rector/rector/rules/CodingStyle/Rector/ClassConst/SplitGroupedClassConstantsRector.php
Text
Base64
<?php declare (strict_types=1); namespace Rector\CodingStyle\Rector\ClassConst; use PhpParser\Node; use PhpParser\Node\Const_; use PhpParser\Node\Stmt\ClassConst; use Rector\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\CodingStyle\Rector\ClassConst\SplitGroupedClassConstantsRector\SplitGroupedClassConstantsRectorTest */ final class SplitGroupedClassConstantsRector extends AbstractRector { public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Separate class constant to own lines', [new CodeSample(<<<'CODE_SAMPLE' class SomeClass { const HI = true, HELLO = 'true'; } CODE_SAMPLE , <<<'CODE_SAMPLE' class SomeClass { const HI = true; const HELLO = 'true'; } CODE_SAMPLE )]); } /** * @return array<class-string<Node>> */ public function getNodeTypes() : array { return [ClassConst::class]; } /** * @param ClassConst $node * @return ClassConst[]|null */ public function refactor(Node $node) : ?array { if (\count($node->consts) < 2) { return null; } /** @var Const_[] $allConsts */ $allConsts = $node->consts; /** @var Const_ $firstConst */ $firstConst = \array_shift($allConsts); $node->consts = [$firstConst]; $nextClassConsts = $this->createNextClassConsts($allConsts, $node); return \array_merge([$node], $nextClassConsts); } /** * @param Const_[] $consts * @return ClassConst[] */ private function createNextClassConsts(array $consts, ClassConst $classConst) : array { $decoratedConsts = []; foreach ($consts as $const) { $decoratedConsts[] = new ClassConst([$const], $classConst->flags, $classConst->getAttributes()); } return $decoratedConsts; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 2
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
RemoveFinalFromConstRector.php
2.08 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
SplitGroupedClassConstantsRector.php
1.92 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).