File manager - Edit - /var/www/payraty/helpdesk/vendor/rector/rector/src/NodeAnalyzer/ClassAnalyzer.php
Back
<?php declare (strict_types=1); namespace Rector\Core\NodeAnalyzer; use PhpParser\Node; use PhpParser\Node\Expr\New_; use PhpParser\Node\Stmt\Class_; use Rector\Core\Util\StringUtils; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; final class ClassAnalyzer { /** * @var string * @see https://regex101.com/r/FQH6RT/1 */ private const ANONYMOUS_CLASS_REGEX = '#AnonymousClass\\w+$#'; /** * @readonly * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; public function __construct(NodeNameResolver $nodeNameResolver) { $this->nodeNameResolver = $nodeNameResolver; } public function isAnonymousClass(Node $node) : bool { if (!$node instanceof Class_) { return \false; } $parent = $node->getAttribute(AttributeKey::PARENT_NODE); if (!$parent instanceof New_) { return \false; } if ($node->isAnonymous()) { return \true; } $className = $this->nodeNameResolver->getName($node); if ($className === null) { return \true; } // match PHPStan pattern for anonymous classes return StringUtils::isMatch($className, self::ANONYMOUS_CLASS_REGEX); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings