diff --git a/src/Rector/Visibility/ChangeConstantVisibilityRector.php b/src/Rector/Visibility/ChangeConstantVisibilityRector.php index adb84360c70..6b18f1cd1c7 100644 --- a/src/Rector/Visibility/ChangeConstantVisibilityRector.php +++ b/src/Rector/Visibility/ChangeConstantVisibilityRector.php @@ -89,13 +89,19 @@ CODE_SAMPLE */ public function refactor(Node $classConstantNode): ?Node { - $constantName = $classConstantNode->consts[0]->name->toString(); $this->visibilityModifier->removeOriginalVisibilityFromFlags($classConstantNode); - $nodeParentClassName = $classConstantNode->getAttribute(Attribute::PARENT_CLASS_NAME); - $newVisibility = $this->constantToVisibilityByClass[$nodeParentClassName][$constantName]; + $newVisibility = $this->resolveNewVisibilityForNode($classConstantNode); $this->visibilityModifier->addVisibilityFlag($classConstantNode, $newVisibility); return $classConstantNode; } + + private function resolveNewVisibilityForNode(ClassConst $classConstantNode): string + { + $nodeParentClassName = $classConstantNode->getAttribute(Attribute::PARENT_CLASS_NAME); + $constantName = $classConstantNode->consts[0]->name->toString(); + + return $this->constantToVisibilityByClass[$nodeParentClassName][$constantName]; + } } diff --git a/src/Rector/Visibility/ChangeMethodVisibilityRector.php b/src/Rector/Visibility/ChangeMethodVisibilityRector.php index be65a507474..fec50c89b2f 100644 --- a/src/Rector/Visibility/ChangeMethodVisibilityRector.php +++ b/src/Rector/Visibility/ChangeMethodVisibilityRector.php @@ -3,7 +3,6 @@ namespace Rector\Rector\Visibility; use PhpParser\Node; -use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use Rector\Node\Attribute; use Rector\NodeModifier\VisibilityModifier; @@ -98,25 +97,20 @@ CODE_SAMPLE */ public function refactor(Node $classMethodNode): ?Node { - $nodeParentClassName = $classMethodNode->getAttribute(Attribute::PARENT_CLASS_NAME); - $methodName = $classMethodNode->name->toString(); - - $newVisibility = $this->methodToVisibilityByClass[$nodeParentClassName][$methodName]; - $this->visibilityModifier->removeOriginalVisibilityFromFlags($classMethodNode); - if ($newVisibility === 'public') { - $classMethodNode->flags |= Class_::MODIFIER_PUBLIC; - } + $newVisibility = $this->resolveNewVisibilityForNode($classMethodNode); - if ($newVisibility === 'protected') { - $classMethodNode->flags |= Class_::MODIFIER_PROTECTED; - } - - if ($newVisibility === 'private') { - $classMethodNode->flags |= Class_::MODIFIER_PRIVATE; - } + $this->visibilityModifier->addVisibilityFlag($classMethodNode, $newVisibility); return $classMethodNode; } + + private function resolveNewVisibilityForNode(ClassMethod $classMethodNode): string + { + $methodName = $classMethodNode->name->toString(); + $nodeParentClassName = $classMethodNode->getAttribute(Attribute::PARENT_CLASS_NAME); + + return $this->methodToVisibilityByClass[$nodeParentClassName][$methodName]; + } } diff --git a/src/Rector/Visibility/ChangePropertyVisibilityRector.php b/src/Rector/Visibility/ChangePropertyVisibilityRector.php index 9a5fc8fa182..33e0764face 100644 --- a/src/Rector/Visibility/ChangePropertyVisibilityRector.php +++ b/src/Rector/Visibility/ChangePropertyVisibilityRector.php @@ -3,7 +3,6 @@ namespace Rector\Rector\Visibility; use PhpParser\Node; -use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Property; use Rector\Node\Attribute; use Rector\NodeModifier\VisibilityModifier; @@ -92,25 +91,19 @@ CODE_SAMPLE */ public function refactor(Node $propertyNode): ?Node { - $nodeParentClassName = $propertyNode->getAttribute(Attribute::PARENT_CLASS_NAME); - $propertyName = $propertyNode->props[0]->name->toString(); - - $newVisibility = $this->propertyToVisibilityByClass[$nodeParentClassName][$propertyName]; - $this->visibilityModifier->removeOriginalVisibilityFromFlags($propertyNode); - if ($newVisibility === 'public') { - $propertyNode->flags |= Class_::MODIFIER_PUBLIC; - } - - if ($newVisibility === 'protected') { - $propertyNode->flags |= Class_::MODIFIER_PROTECTED; - } - - if ($newVisibility === 'private') { - $propertyNode->flags |= Class_::MODIFIER_PRIVATE; - } + $newVisibility = $this->resolveNewVisibilityForNode($propertyNode); + $this->visibilityModifier->addVisibilityFlag($propertyNode, $newVisibility); return $propertyNode; } + + private function resolveNewVisibilityForNode(Property $propertyNode): string + { + $nodeParentClassName = $propertyNode->getAttribute(Attribute::PARENT_CLASS_NAME); + $propertyName = $propertyNode->props[0]->name->toString(); + + return $this->propertyToVisibilityByClass[$nodeParentClassName][$propertyName]; + } }