rector/vendor/rector/rector-doctrine/rules/CodeQuality/NodeFactory/AttributeFactory.php
Tomas Votruba 53742c371b Updated Rector to commit 70fa502a59dfb8f81011a46a456e1ccb4051be76
70fa502a59 [CodeQuality] Skip private static call from static:: on LocallyCalledStaticMethodToNonStaticRector (#5620)
2024-02-15 09:08:32 +00:00

37 lines
1.0 KiB
PHP

<?php
declare (strict_types=1);
namespace Rector\Doctrine\CodeQuality\NodeFactory;
use PhpParser\BuilderFactory;
use PhpParser\BuilderHelpers;
use PhpParser\Node\Arg;
use PhpParser\Node\Attribute;
use PhpParser\Node\AttributeGroup;
use PhpParser\Node\Expr;
use PhpParser\Node\Identifier;
use PhpParser\Node\Name\FullyQualified;
final class AttributeFactory
{
/**
* @param mixed $expr
*/
public static function createNamedArg($expr, string $name) : Arg
{
if (!$expr instanceof Expr) {
$expr = BuilderHelpers::normalizeValue($expr);
}
return new Arg($expr, \false, \false, [], new Identifier($name));
}
/**
* @param array<mixed|Arg> $values
*/
public static function createGroup(string $className, array $values = []) : AttributeGroup
{
$builderFactory = new BuilderFactory();
$args = $builderFactory->args($values);
$attribute = new Attribute(new FullyQualified($className), $args);
return new AttributeGroup([$attribute]);
}
}