opt
/
cpanel
/
ea-wappspector
/
vendor
/
rector
/
rector
/
rules
/
Privatization
/
VisibilityGuard
➕ New
📤 Upload
✎ Editing:
ClassMethodVisibilityGuard.php
← Back
<?php declare (strict_types=1); namespace Rector\Privatization\VisibilityGuard; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\ClassReflection; use Rector\NodeNameResolver\NodeNameResolver; final class ClassMethodVisibilityGuard { /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; public function __construct(NodeNameResolver $nodeNameResolver) { $this->nodeNameResolver = $nodeNameResolver; } public function isClassMethodVisibilityGuardedByParent(ClassMethod $classMethod, ClassReflection $classReflection) : bool { $methodName = $this->nodeNameResolver->getName($classMethod); /** @var ClassReflection[] $parentClassReflections */ $parentClassReflections = \array_merge($classReflection->getParents(), $classReflection->getInterfaces()); foreach ($parentClassReflections as $parentClassReflection) { if ($parentClassReflection->hasMethod($methodName)) { return \true; } } return \false; } public function isClassMethodVisibilityGuardedByTrait(ClassMethod $classMethod, ClassReflection $classReflection) : bool { $parentTraitReflections = $this->getLocalAndParentTraitReflections($classReflection); $methodName = $this->nodeNameResolver->getName($classMethod); foreach ($parentTraitReflections as $parentTraitReflection) { if ($parentTraitReflection->hasMethod($methodName)) { return \true; } } return \false; } /** * @return ClassReflection[] */ private function getLocalAndParentTraitReflections(ClassReflection $classReflection) : array { $traitReflections = $classReflection->getTraits(); foreach ($classReflection->getParents() as $parentClassReflection) { foreach ($parentClassReflection->getTraits() as $parentTraitReflection) { $traitReflections[] = $parentTraitReflection; } } return $traitReflections; } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel