0

Final Class Yiisoft\CodeStyle\Rector\Rules\RemoveOverrideAttributeRector

InheritanceYiisoft\CodeStyle\Rector\Rules\RemoveOverrideAttributeRector » Rector\Rector\AbstractRector
ImplementsSymplify\RuleDocGenerator\Contract\DocumentedRuleInterface

Method Details

Hide inherited methods

getNodeTypes() public method

public array getNodeTypes ( )

                public function getNodeTypes(): array
{
    return [ClassMethod::class];
}

            
getRuleDefinition() public method

public \Symplify\RuleDocGenerator\ValueObject\RuleDefinition getRuleDefinition ( )

                public function getRuleDefinition(): RuleDefinition
{
    return new RuleDefinition(
        'Remove #[Override] attribute from methods',
        [
            new CodeSample(
                <<<'CODE_SAMPLE'
                class Child extends Parent
                {
                    #[Override]
                    public function foo(): void {}
                }
                CODE_SAMPLE,
                <<<'CODE_SAMPLE'
                class Child extends Parent
                {
                    public function foo(): void {}
                }
                CODE_SAMPLE,
            ),
        ],
    );
}

            
refactor() public method

public ?\PhpParser\Node refactor ( \PhpParser\Node $node )
$node \PhpParser\Node

                public function refactor(Node $node): ?Node
{
    if (!$node instanceof ClassMethod) {
        return null;
    }
    $changed = false;
    foreach ($node->attrGroups as $groupKey => $attrGroup) {
        foreach ($attrGroup->attrs as $attrKey => $attr) {
            if ($this->getName($attr->name) === 'Override') {
                unset($attrGroup->attrs[$attrKey]);
                $changed = true;
                break;
            }
        }
        if ($attrGroup->attrs === []) {
            unset($node->attrGroups[$groupKey]);
        }
    }
    if (!$changed) {
        return null;
    }
    $node->attrGroups = array_values($node->attrGroups);
    return $node;
}