From 055cd31f66b2550d9d4a506a329356efe7b84b3c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 14 Feb 2024 19:28:57 +0000 Subject: [PATCH] Updated Rector to commit 2ff0f08bd7f7f6c848821bcabf0872f81a9c440b https://github.com/rectorphp/rector-src/commit/2ff0f08bd7f7f6c848821bcabf0872f81a9c440b [PHP 8.0] Add always class to AnnotationToAttribute to include string to ::class reference conversion (#5619) --- .../ValueObject/AnnotationToAttribute.php | 20 +++- src/Application/VersionResolver.php | 4 +- .../AnnotationToAttributeMapper.php | 2 +- .../AttributeArrayNameInliner.php | 3 +- .../ExprParameterReflectionTypeCorrector.php | 103 ------------------ .../NodeFactory/PhpAttributeGroupFactory.php | 52 ++++++--- .../PhpNestedAttributeGroupFactory.php | 28 ++--- vendor/composer/autoload_classmap.php | 3 +- vendor/composer/autoload_static.php | 3 +- vendor/composer/installed.json | 8 +- vendor/composer/installed.php | 2 +- .../src/GeneratedConfig.php | 2 +- ...oftDeletableClassAnnotationTransformer.php | 9 +- .../TableClassAnnotationTransformer.php | 6 +- .../ColumnAnnotationTransformer.php | 3 +- .../IdColumnAnnotationTransformer.php | 3 +- .../ClassAnnotationTransformerInterface.php | 2 +- .../Helper/NodeValueNormalizer.php | 23 ++++ .../NodeFactory/ArrayItemNodeFactory.php | 21 +--- ...rectDefaultTypesOnEntityPropertyRector.php | 3 +- .../rector-doctrine/src/Enum/MappingClass.php | 12 ++ .../src/NodeAnalyzer/AttributeFinder.php | 3 +- .../ColumnPropertyTypeResolver.php | 9 +- .../NullabilityColumnPropertyTypeResolver.php | 3 +- 24 files changed, 147 insertions(+), 180 deletions(-) delete mode 100644 src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php create mode 100644 vendor/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php create mode 100644 vendor/rector/rector-doctrine/src/Enum/MappingClass.php diff --git a/rules/Php80/ValueObject/AnnotationToAttribute.php b/rules/Php80/ValueObject/AnnotationToAttribute.php index 37556baef0e..dfb59317a8e 100644 --- a/rules/Php80/ValueObject/AnnotationToAttribute.php +++ b/rules/Php80/ValueObject/AnnotationToAttribute.php @@ -5,6 +5,7 @@ namespace Rector\Php80\ValueObject; use Rector\Php80\Contract\ValueObject\AnnotationToAttributeInterface; use Rector\Validation\RectorAssert; +use RectorPrefix202402\Webmozart\Assert\Assert; final class AnnotationToAttribute implements AnnotationToAttributeInterface { /** @@ -17,14 +18,24 @@ final class AnnotationToAttribute implements AnnotationToAttributeInterface * @var string|null */ private $attributeClass; - public function __construct(string $tag, ?string $attributeClass = null) + /** + * @var string[] + * @readonly + */ + private $classReferenceFields = []; + /** + * @param string[] $classReferenceFields + */ + public function __construct(string $tag, ?string $attributeClass = null, array $classReferenceFields = []) { $this->tag = $tag; $this->attributeClass = $attributeClass; + $this->classReferenceFields = $classReferenceFields; RectorAssert::className($tag); if (\is_string($attributeClass)) { RectorAssert::className($attributeClass); } + Assert::allString($classReferenceFields); } public function getTag() : string { @@ -37,4 +48,11 @@ final class AnnotationToAttribute implements AnnotationToAttributeInterface } return $this->attributeClass; } + /** + * @return string[] + */ + public function getClassReferenceFields() : array + { + return $this->classReferenceFields; + } } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index c7a0eed089c..ab99b422812 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '435d125053eed8764652ccf8565bde1660ee08ce'; + public const PACKAGE_VERSION = '2ff0f08bd7f7f6c848821bcabf0872f81a9c440b'; /** * @api * @var string */ - public const RELEASE_DATE = '2024-02-14 15:37:49'; + public const RELEASE_DATE = '2024-02-14 19:26:45'; /** * @var int */ diff --git a/src/PhpAttribute/AnnotationToAttributeMapper.php b/src/PhpAttribute/AnnotationToAttributeMapper.php index ecf155ff5fe..4888794392c 100644 --- a/src/PhpAttribute/AnnotationToAttributeMapper.php +++ b/src/PhpAttribute/AnnotationToAttributeMapper.php @@ -32,7 +32,7 @@ final class AnnotationToAttributeMapper Assert::notEmpty($annotationToAttributeMappers); } /** - * @return Expr|DocTagNodeState::REMOVE_ARRAY + * @return mixed|DocTagNodeState::REMOVE_ARRAY * @param mixed $value */ public function map($value) diff --git a/src/PhpAttribute/AttributeArrayNameInliner.php b/src/PhpAttribute/AttributeArrayNameInliner.php index 9375018effc..4810d519ee0 100644 --- a/src/PhpAttribute/AttributeArrayNameInliner.php +++ b/src/PhpAttribute/AttributeArrayNameInliner.php @@ -16,9 +16,10 @@ final class AttributeArrayNameInliner { /** * @param Array_|Arg[] $array + * @param string[] $classReferenceFields * @return Arg[] */ - public function inlineArrayToArgs($array) : array + public function inlineArrayToArgs($array, array $classReferenceFields = []) : array { if (\is_array($array)) { return $this->inlineArray($array); diff --git a/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php b/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php deleted file mode 100644 index 1780f80bd20..00000000000 --- a/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php +++ /dev/null @@ -1,103 +0,0 @@ -staticTypeMapper = $staticTypeMapper; - $this->reflectionProvider = $reflectionProvider; - $this->nodeFactory = $nodeFactory; - } - /** - * @param array $items - * @return array - */ - public function correctItemsByAttributeClass($items, string $attributeClass) : array - { - if ($items instanceof Array_) { - $items = $items->items; - } - if (!$this->reflectionProvider->hasClass($attributeClass)) { - return $items; - } - $attributeClassReflection = $this->reflectionProvider->getClass($attributeClass); - // nothing to retype by constructor - if (!$attributeClassReflection->hasConstructor()) { - return $items; - } - $extendedMethodReflection = $attributeClassReflection->getConstructor(); - $parametersAcceptorWithPhpDocs = ParametersAcceptorSelector::selectSingle($extendedMethodReflection->getVariants()); - foreach ($items as $name => $item) { - foreach ($parametersAcceptorWithPhpDocs->getParameters() as $parameterReflection) { - $correctedItem = $this->correctItemByParameterReflection($name, $item, $parameterReflection); - if (!$correctedItem instanceof Expr) { - continue; - } - $items[$name] = $correctedItem; - continue 2; - } - } - return $items; - } - /** - * @param string|int $name - * @param mixed $item - */ - private function correctItemByParameterReflection($name, $item, ParameterReflection $parameterReflection) : ?\PhpParser\Node\Expr - { - if (!$item instanceof Expr) { - return null; - } - if ($name !== $parameterReflection->getName()) { - return null; - } - $parameterType = $parameterReflection->getType(); - $currentType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($item); - // all good - if ($parameterType->accepts($currentType, \false)->yes()) { - return null; - } - $clearParameterType = TypeCombinator::removeNull($parameterType); - // correct type - if ($clearParameterType->isInteger()->yes() && $item instanceof String_) { - return new LNumber((int) $item->value); - } - if ($clearParameterType->isBoolean()->yes() && $item instanceof String_) { - if (\strtolower($item->value) === 'true') { - return $this->nodeFactory->createTrue(); - } - if (\strtolower($item->value) === 'false') { - return $this->nodeFactory->createFalse(); - } - } - return null; - } -} diff --git a/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php b/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php index 0f0fa60d2cc..f91355f27cf 100644 --- a/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php +++ b/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php @@ -7,7 +7,11 @@ use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\ArrayItem; +use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; +use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Use_; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; @@ -15,7 +19,6 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\Php80\ValueObject\AnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector; /** * @see \Rector\Tests\PhpAttribute\Printer\PhpAttributeGroupFactoryTest */ @@ -36,22 +39,16 @@ final class PhpAttributeGroupFactory * @var \Rector\PhpAttribute\NodeFactory\NamedArgsFactory */ private $namedArgsFactory; - /** - * @readonly - * @var \Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector - */ - private $exprParameterReflectionTypeCorrector; /** * @readonly * @var \Rector\PhpAttribute\AttributeArrayNameInliner */ private $attributeArrayNameInliner; - public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, ExprParameterReflectionTypeCorrector $exprParameterReflectionTypeCorrector, AttributeArrayNameInliner $attributeArrayNameInliner) + public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, AttributeArrayNameInliner $attributeArrayNameInliner) { $this->annotationToAttributeMapper = $annotationToAttributeMapper; $this->attributeNameFactory = $attributeNameFactory; $this->namedArgsFactory = $namedArgsFactory; - $this->exprParameterReflectionTypeCorrector = $exprParameterReflectionTypeCorrector; $this->attributeArrayNameInliner = $attributeArrayNameInliner; } public function createFromSimpleTag(AnnotationToAttribute $annotationToAttribute) : AttributeGroup @@ -81,7 +78,7 @@ final class PhpAttributeGroupFactory public function create(DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode, AnnotationToAttribute $annotationToAttribute, array $uses) : AttributeGroup { $values = $doctrineAnnotationTagValueNode->getValuesWithSilentKey(); - $args = $this->createArgsFromItems($values, $annotationToAttribute->getAttributeClass()); + $args = $this->createArgsFromItems($values, $annotationToAttribute->getAttributeClass(), $annotationToAttribute->getClassReferenceFields()); $args = $this->attributeArrayNameInliner->inlineArrayToArgs($args); $attributeName = $this->attributeNameFactory->create($annotationToAttribute, $doctrineAnnotationTagValueNode, $uses); // keep FQN in the attribute, so it can be easily detected later @@ -93,14 +90,43 @@ final class PhpAttributeGroupFactory * @api tests * * @param ArrayItemNode[]|mixed[] $items + * @param string[] $classReferencedFields * @return Arg[] */ - public function createArgsFromItems(array $items, string $attributeClass) : array + public function createArgsFromItems(array $items, string $attributeClass, array $classReferencedFields = []) : array { - /** @var Expr[]|Expr\Array_ $mappedItems */ $mappedItems = $this->annotationToAttributeMapper->map($items); - $mappedItems = $this->exprParameterReflectionTypeCorrector->correctItemsByAttributeClass($mappedItems, $attributeClass); + $this->mapClassReferences($mappedItems, $classReferencedFields); + $values = $mappedItems instanceof Array_ ? $mappedItems->items : $mappedItems; // the key here should contain the named argument - return $this->namedArgsFactory->createFromValues($mappedItems); + return $this->namedArgsFactory->createFromValues($values); + } + /** + * @param string[] $classReferencedFields + * @param \PhpParser\Node\Expr|string $expr + */ + private function mapClassReferences($expr, array $classReferencedFields) : void + { + if (!$expr instanceof Array_) { + return; + } + foreach ($expr->items as $arrayItem) { + if (!$arrayItem instanceof ArrayItem) { + continue; + } + if (!$arrayItem->key instanceof String_) { + continue; + } + if (!\in_array($arrayItem->key->value, $classReferencedFields)) { + continue; + } + if ($arrayItem->value instanceof ClassConstFetch) { + continue; + } + if (!$arrayItem->value instanceof String_) { + continue; + } + $arrayItem->value = new ClassConstFetch(new FullyQualified($arrayItem->value->value), 'class'); + } } } diff --git a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index e8151ae1609..49a3556d3dd 100644 --- a/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/src/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -7,7 +7,7 @@ use RectorPrefix202402\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; -use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\Nop; @@ -26,7 +26,6 @@ use Rector\Php80\ValueObject\AnnotationPropertyToAttributeClass; use Rector\Php80\ValueObject\NestedAnnotationToAttribute; use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; -use Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector; use RectorPrefix202402\Webmozart\Assert\Assert; final class PhpNestedAttributeGroupFactory { @@ -45,11 +44,6 @@ final class PhpNestedAttributeGroupFactory * @var \Rector\PhpAttribute\NodeFactory\NamedArgsFactory */ private $namedArgsFactory; - /** - * @readonly - * @var \Rector\PhpAttribute\NodeAnalyzer\ExprParameterReflectionTypeCorrector - */ - private $exprParameterReflectionTypeCorrector; /** * @readonly * @var \Rector\PhpAttribute\AttributeArrayNameInliner @@ -65,12 +59,11 @@ final class PhpNestedAttributeGroupFactory * @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser */ private $staticDoctrineAnnotationParser; - public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, ExprParameterReflectionTypeCorrector $exprParameterReflectionTypeCorrector, AttributeArrayNameInliner $attributeArrayNameInliner, TokenIteratorFactory $tokenIteratorFactory, StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser) + public function __construct(AnnotationToAttributeMapper $annotationToAttributeMapper, \Rector\PhpAttribute\NodeFactory\AttributeNameFactory $attributeNameFactory, \Rector\PhpAttribute\NodeFactory\NamedArgsFactory $namedArgsFactory, AttributeArrayNameInliner $attributeArrayNameInliner, TokenIteratorFactory $tokenIteratorFactory, StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser) { $this->annotationToAttributeMapper = $annotationToAttributeMapper; $this->attributeNameFactory = $attributeNameFactory; $this->namedArgsFactory = $namedArgsFactory; - $this->exprParameterReflectionTypeCorrector = $exprParameterReflectionTypeCorrector; $this->attributeArrayNameInliner = $attributeArrayNameInliner; $this->tokenIteratorFactory = $tokenIteratorFactory; $this->staticDoctrineAnnotationParser = $staticDoctrineAnnotationParser; @@ -82,7 +75,7 @@ final class PhpNestedAttributeGroupFactory { $values = $doctrineAnnotationTagValueNode->getValues(); $values = $this->removeItems($values, $nestedAnnotationToAttribute); - $args = $this->createArgsFromItems($values, $nestedAnnotationToAttribute); + $args = $this->createArgsFromItems($values); $args = $this->attributeArrayNameInliner->inlineArrayToArgs($args); $attributeName = $this->attributeNameFactory->create($nestedAnnotationToAttribute, $doctrineAnnotationTagValueNode, $uses); $attribute = new Attribute($attributeName, $args); @@ -107,7 +100,7 @@ final class PhpNestedAttributeGroupFactory if (!$nestedArrayItemNode->value instanceof DoctrineAnnotationTagValueNode) { continue; } - $attributeArgs = $this->createAttributeArgs($nestedArrayItemNode->value, $nestedAnnotationToAttribute); + $attributeArgs = $this->createAttributeArgs($nestedArrayItemNode->value); $originalIdentifier = $doctrineAnnotationTagValueNode->identifierTypeNode->name; $attributeName = $this->resolveAliasedAttributeName($originalIdentifier, $nestedAnnotationPropertyToAttributeClass); $attribute = new Attribute($attributeName, $attributeArgs); @@ -119,21 +112,20 @@ final class PhpNestedAttributeGroupFactory /** * @return Arg[] */ - private function createAttributeArgs(DoctrineAnnotationTagValueNode $nestedDoctrineAnnotationTagValueNode, NestedAnnotationToAttribute $nestedAnnotationToAttribute) : array + private function createAttributeArgs(DoctrineAnnotationTagValueNode $nestedDoctrineAnnotationTagValueNode) : array { - $args = $this->createArgsFromItems($nestedDoctrineAnnotationTagValueNode->getValues(), $nestedAnnotationToAttribute); + $args = $this->createArgsFromItems($nestedDoctrineAnnotationTagValueNode->getValues()); return $this->attributeArrayNameInliner->inlineArrayToArgs($args); } /** * @param ArrayItemNode[] $arrayItemNodes * @return Arg[] */ - private function createArgsFromItems(array $arrayItemNodes, NestedAnnotationToAttribute $nestedAnnotationToAttribute) : array + private function createArgsFromItems(array $arrayItemNodes) : array { - /** @var Expr[]|Expr\Array_ $arrayItemNodes */ $arrayItemNodes = $this->annotationToAttributeMapper->map($arrayItemNodes); - $arrayItemNodes = $this->exprParameterReflectionTypeCorrector->correctItemsByAttributeClass($arrayItemNodes, $nestedAnnotationToAttribute->getTag()); - return $this->namedArgsFactory->createFromValues($arrayItemNodes); + $values = $arrayItemNodes instanceof Array_ ? $arrayItemNodes->items : $arrayItemNodes; + return $this->namedArgsFactory->createFromValues($values); } /** * @todo improve this hardcoded approach later @@ -202,7 +194,7 @@ final class PhpNestedAttributeGroupFactory $values = $this->staticDoctrineAnnotationParser->resolveAnnotationMethodCall($nestedTokenIterator, new Nop()); $nestedDoctrineAnnotationTagValueNode = new DoctrineAnnotationTagValueNode($identifierTypeNode, $match['annotation_content'] ?? '', $values); } - $attributeArgs = $this->createAttributeArgs($nestedDoctrineAnnotationTagValueNode, $nestedAnnotationToAttribute); + $attributeArgs = $this->createAttributeArgs($nestedDoctrineAnnotationTagValueNode); $originalIdentifier = $nestedDoctrineAnnotationTagValueNode->identifierTypeNode->name; $attributeName = $this->resolveAliasedAttributeName($originalIdentifier, $annotationPropertyToAttributeClass); if ($annotationPropertyToAttributeClass->doesNeedNewImport() && \count($attributeName->getParts()) === 1) { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 937c9305da2..3da317b0c20 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -1316,6 +1316,7 @@ return array( 'Rector\\Doctrine\\CodeQuality\\EntityMappingResolver' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\EntityMappingKey' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Enum/EntityMappingKey.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.php', + 'Rector\\Doctrine\\CodeQuality\\Helper\\NodeValueNormalizer' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php', 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\ArrayItemNodeFactory' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\InitializeDefaultEntityCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\MoveCurrentDateTimeDefaultInEntityToConstructorRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/MoveCurrentDateTimeDefaultInEntityToConstructorRector.php', @@ -1334,6 +1335,7 @@ return array( 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => $vendorDir . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', + 'Rector\\Doctrine\\Enum\\MappingClass' => $vendorDir . '/rector/rector-doctrine/src/Enum/MappingClass.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttrinationFinder' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => $vendorDir . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php', @@ -1927,7 +1929,6 @@ return array( 'Rector\\PhpAttribute\\AttributeArrayNameInliner' => $baseDir . '/src/PhpAttribute/AttributeArrayNameInliner.php', 'Rector\\PhpAttribute\\Contract\\AnnotationToAttributeMapperInterface' => $baseDir . '/src/PhpAttribute/Contract/AnnotationToAttributeMapperInterface.php', 'Rector\\PhpAttribute\\Enum\\DocTagNodeState' => $baseDir . '/src/PhpAttribute/Enum/DocTagNodeState.php', - 'Rector\\PhpAttribute\\NodeAnalyzer\\ExprParameterReflectionTypeCorrector' => $baseDir . '/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php', 'Rector\\PhpAttribute\\NodeFactory\\AttributeNameFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/AttributeNameFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\NamedArgsFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/NamedArgsFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\PhpAttributeGroupFactory' => $baseDir . '/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5d04219898e..aa521373827 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -1535,6 +1535,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Doctrine\\CodeQuality\\EntityMappingResolver' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/EntityMappingResolver.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\EntityMappingKey' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Enum/EntityMappingKey.php', 'Rector\\Doctrine\\CodeQuality\\Enum\\ToManyMappings' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Enum/ToManyMappings.php', + 'Rector\\Doctrine\\CodeQuality\\Helper\\NodeValueNormalizer' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php', 'Rector\\Doctrine\\CodeQuality\\NodeFactory\\ArrayItemNodeFactory' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/NodeFactory/ArrayItemNodeFactory.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\InitializeDefaultEntityCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/InitializeDefaultEntityCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Class_\\MoveCurrentDateTimeDefaultInEntityToConstructorRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/MoveCurrentDateTimeDefaultInEntityToConstructorRector.php', @@ -1553,6 +1554,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ExtractArrayArgOnQueryBuilderSelectRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ExtractArrayArgOnQueryBuilderSelectRector.php', 'Rector\\Doctrine\\Dbal211\\Rector\\MethodCall\\ReplaceFetchAllMethodCallRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal211/Rector/MethodCall/ReplaceFetchAllMethodCallRector.php', 'Rector\\Doctrine\\Dbal40\\Rector\\MethodCall\\ChangeCompositeExpressionAddMultipleWithWithRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/Dbal40/Rector/MethodCall/ChangeCompositeExpressionAddMultipleWithWithRector.php', + 'Rector\\Doctrine\\Enum\\MappingClass' => __DIR__ . '/..' . '/rector/rector-doctrine/src/Enum/MappingClass.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttributeFinder' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttributeFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\AttrinationFinder' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/AttrinationFinder.php', 'Rector\\Doctrine\\NodeAnalyzer\\ConstructorAssignPropertyAnalyzer' => __DIR__ . '/..' . '/rector/rector-doctrine/src/NodeAnalyzer/ConstructorAssignPropertyAnalyzer.php', @@ -2146,7 +2148,6 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54 'Rector\\PhpAttribute\\AttributeArrayNameInliner' => __DIR__ . '/../..' . '/src/PhpAttribute/AttributeArrayNameInliner.php', 'Rector\\PhpAttribute\\Contract\\AnnotationToAttributeMapperInterface' => __DIR__ . '/../..' . '/src/PhpAttribute/Contract/AnnotationToAttributeMapperInterface.php', 'Rector\\PhpAttribute\\Enum\\DocTagNodeState' => __DIR__ . '/../..' . '/src/PhpAttribute/Enum/DocTagNodeState.php', - 'Rector\\PhpAttribute\\NodeAnalyzer\\ExprParameterReflectionTypeCorrector' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeAnalyzer/ExprParameterReflectionTypeCorrector.php', 'Rector\\PhpAttribute\\NodeFactory\\AttributeNameFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/AttributeNameFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\NamedArgsFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/NamedArgsFactory.php', 'Rector\\PhpAttribute\\NodeFactory\\PhpAttributeGroupFactory' => __DIR__ . '/../..' . '/src/PhpAttribute/NodeFactory/PhpAttributeGroupFactory.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e9ecf22db25..17267c6626e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1679,12 +1679,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "68d0f86babbb722037f888a2fba7f53e521b777d" + "reference": "0858ab3d83ed66e57869c30ed4e577c8e028643b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/68d0f86babbb722037f888a2fba7f53e521b777d", - "reference": "68d0f86babbb722037f888a2fba7f53e521b777d", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/0858ab3d83ed66e57869c30ed4e577c8e028643b", + "reference": "0858ab3d83ed66e57869c30ed4e577c8e028643b", "shasum": "" }, "require": { @@ -1709,7 +1709,7 @@ "tomasvotruba\/unused-public": "^0.3", "tracy\/tracy": "^2.10" }, - "time": "2024-02-14T14:33:16+00:00", + "time": "2024-02-14T16:57:40+00:00", "default-branch": true, "type": "rector-extension", "extra": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2d20e0dc6e9..bc77d99b510 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -2,4 +2,4 @@ namespace RectorPrefix202402; -return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.9', 'version' => '2.0.9.0', 'reference' => '2930cd5ef353871c821d5c43ed030d39ac8cfe65', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.44.0', 'version' => '10.44.0.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.44.0', 'version' => '10.44.0.0', 'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.18.0', 'version' => '4.18.0.0', 'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.25.0', 'version' => '1.25.0.0', 'reference' => 'bd84b629c8de41aa2ae82c067c955e06f1b00240', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.57')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '68d0f86babbb722037f888a2fba7f53e521b777d', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '8d1aab27edc3409cd976ddf109ac4933ec33ad5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cdbe3907cd64fe07de118b0b722d7d84802988d1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '59edb6245e7fbdbe4913c354b6803da3eb7254ac', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.0', 'version' => '5.1.0.0', 'reference' => 'fbf413a49e54f6b9b17e12d900ac7f6101591b7f', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.29.0', 'version' => '1.29.0.0', 'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '31642b0818bfcff85930344ef93193f8c607e0a3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.1', 'version' => '3.4.1.0', 'reference' => 'fe07cbc8d837f60caf7018068e350cc5163681a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/yaml' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => 'd75715985f0f94f978e3a8fa42533e10db921b90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.9', 'version' => '2.0.9.0', 'reference' => '2930cd5ef353871c821d5c43ed030d39ac8cfe65', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '1.1.0', 'version' => '1.1.0.0', 'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.44.0', 'version' => '10.44.0.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.44.0', 'version' => '10.44.0.0', 'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.18.0', 'version' => '4.18.0.0', 'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.25.0', 'version' => '1.25.0.0', 'reference' => 'bd84b629c8de41aa2ae82c067c955e06f1b00240', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.57')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '0858ab3d83ed66e57869c30ed4e577c8e028643b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '8d1aab27edc3409cd976ddf109ac4933ec33ad5b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'cdbe3907cd64fe07de118b0b722d7d84802988d1', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '59edb6245e7fbdbe4913c354b6803da3eb7254ac', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.1.0', 'version' => '5.1.0.0', 'reference' => 'fbf413a49e54f6b9b17e12d900ac7f6101591b7f', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/filesystem' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '7f3b1755eb49297a0827a7575d5d2b2fd11cc9fb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.29.0', 'version' => '1.29.0.0', 'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => '31642b0818bfcff85930344ef93193f8c607e0a3', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.1', 'version' => '3.4.1.0', 'reference' => 'fe07cbc8d837f60caf7018068e350cc5163681a0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/yaml' => array('pretty_version' => 'v6.4.3', 'version' => '6.4.3.0', 'reference' => 'd75715985f0f94f978e3a8fa42533e10db921b90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/yaml', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/easy-parallel' => array('pretty_version' => '11.2.2', 'version' => '11.2.2.0', 'reference' => '8586c18bb8efb31cd192a4e5cc94ae7813f72ed9', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/extension-installer/src/GeneratedConfig.php index 20114f51c52..b6580c1a9b7 100644 --- a/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ namespace Rector\RectorInstaller; */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 68d0f86'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 8d1aab2'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main cdbe390'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 59edb62')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 0858ab3'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 8d1aab2'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main cdbe390'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 59edb62')); private function __construct() { } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php index 09e432fb579..0d8a9a545dc 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/SoftDeletableClassAnnotationTransformer.php @@ -4,10 +4,10 @@ declare (strict_types=1); namespace Rector\Doctrine\CodeQuality\AnnotationTransformer\ClassAnnotationTransformer; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; -use Rector\BetterPhpDocParser\PhpDoc\StringNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\Doctrine\CodeQuality\Contract\ClassAnnotationTransformerInterface; use Rector\Doctrine\CodeQuality\DocTagNodeFactory; +use Rector\Doctrine\CodeQuality\Helper\NodeValueNormalizer; use Rector\Doctrine\CodeQuality\Utils\CaseStringHelper; use Rector\Doctrine\CodeQuality\ValueObject\EntityMapping; final class SoftDeletableClassAnnotationTransformer implements ClassAnnotationTransformerInterface @@ -38,9 +38,10 @@ final class SoftDeletableClassAnnotationTransformer implements ClassAnnotationTr private function createArrayItemNodes(array $softDeletableMapping) : array { $arrayItemNodes = []; - foreach ($softDeletableMapping as $fieldKey => $fieldValue) { - $camelCaseFieldKey = CaseStringHelper::camelCase($fieldKey); - $arrayItemNodes[] = new ArrayItemNode(new StringNode($fieldValue), $camelCaseFieldKey); + foreach ($softDeletableMapping as $fieldKey => $fieldValueNode) { + $fieldKey = CaseStringHelper::camelCase($fieldKey); + $fieldValueNode = NodeValueNormalizer::normalize($fieldValueNode); + $arrayItemNodes[] = new ArrayItemNode($fieldValueNode, $fieldKey); } return $arrayItemNodes; } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php index 2e707e1e4cc..9d2e7e4ae8d 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/ClassAnnotationTransformer/TableClassAnnotationTransformer.php @@ -18,6 +18,10 @@ final class TableClassAnnotationTransformer implements ClassAnnotationTransforme * @var string */ private const TABLE_KEY = 'table'; + /** + * @var string + */ + private const UNIQUE_CONSTRAINTS_CLASS = 'Doctrine\\ORM\\Mapping\\UniqueConstraint'; public function transform(EntityMapping $entityMapping, PhpDocInfo $classPhpDocInfo) : void { $classMapping = $entityMapping->getClassMapping(); @@ -38,7 +42,7 @@ final class TableClassAnnotationTransformer implements ClassAnnotationTransforme $columnArrayItems[] = new ArrayItemNode(new StringNode($column)); } $columnCurlList = new CurlyListNode($columnArrayItems); - $uniqueConstraintDoctrineAnnotationTagValueNodes[] = new ArrayItemNode(new DoctrineAnnotationTagValueNode(new IdentifierTypeNode('@\\Doctrine\\ORM\\Mapping\\UniqueConstraint'), null, [new ArrayItemNode(new StringNode($name), 'name'), new ArrayItemNode($columnCurlList, 'columns')])); + $uniqueConstraintDoctrineAnnotationTagValueNodes[] = new ArrayItemNode(new DoctrineAnnotationTagValueNode(new IdentifierTypeNode('@\\' . self::UNIQUE_CONSTRAINTS_CLASS), null, [new ArrayItemNode(new StringNode($name), 'name'), new ArrayItemNode($columnCurlList, 'columns')])); } $arrayItemNodes[] = new ArrayItemNode(new CurlyListNode($uniqueConstraintDoctrineAnnotationTagValueNodes), 'uniqueConstraints'); } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php index bde396a0b32..f5356ea208f 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/ColumnAnnotationTransformer.php @@ -10,6 +10,7 @@ use Rector\Doctrine\CodeQuality\DocTagNodeFactory; use Rector\Doctrine\CodeQuality\Enum\EntityMappingKey; use Rector\Doctrine\CodeQuality\NodeFactory\ArrayItemNodeFactory; use Rector\Doctrine\CodeQuality\ValueObject\EntityMapping; +use Rector\Doctrine\Enum\MappingClass; final class ColumnAnnotationTransformer implements PropertyAnnotationTransformerInterface { /** @@ -38,6 +39,6 @@ final class ColumnAnnotationTransformer implements PropertyAnnotationTransformer } public function getClassName() : string { - return 'Doctrine\\ORM\\Mapping\\Column'; + return MappingClass::COLUMN; } } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php index a3f4e987506..f9806ba50ef 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/AnnotationTransformer/PropertyAnnotationTransformer/IdColumnAnnotationTransformer.php @@ -10,6 +10,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\Doctrine\CodeQuality\Contract\PropertyAnnotationTransformerInterface; use Rector\Doctrine\CodeQuality\DocTagNodeFactory; use Rector\Doctrine\CodeQuality\ValueObject\EntityMapping; +use Rector\Doctrine\Enum\MappingClass; final class IdColumnAnnotationTransformer implements PropertyAnnotationTransformerInterface { public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo, Property $property) : void @@ -28,6 +29,6 @@ final class IdColumnAnnotationTransformer implements PropertyAnnotationTransform } public function getClassName() : string { - return 'Doctrine\\ORM\\Mapping\\Column'; + return MappingClass::COLUMN; } } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php index 1abae0e6994..bf8ec3633b9 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Contract/ClassAnnotationTransformerInterface.php @@ -8,5 +8,5 @@ use Rector\Doctrine\CodeQuality\ValueObject\EntityMapping; interface ClassAnnotationTransformerInterface { public function getClassName() : string; - public function transform(EntityMapping $entityMapping, PhpDocInfo $propertyPhpDocInfo) : void; + public function transform(EntityMapping $entityMapping, PhpDocInfo $classPhpDocInfo) : void; } diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php new file mode 100644 index 00000000000..553592f56ad --- /dev/null +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Helper/NodeValueNormalizer.php @@ -0,0 +1,23 @@ + $propertyMapping * @return ArrayItemNode[] @@ -42,24 +43,11 @@ final class ArrayItemNodeFactory if (\in_array($fieldKey, self::EXTENSION_KEYS, \true)) { continue; } - // special case for separate entity - if ($fieldKey === 'joinColumns') { - continue; - } if (\is_array($fieldValue)) { $fieldValueArrayItemNodes = []; foreach ($fieldValue as $fieldSingleKey => $fieldSingleValue) { - if (\is_numeric($fieldSingleValue)) { - $fieldSingleValue = (string) $fieldSingleValue; - $fieldArrayItemNode = new ArrayItemNode($fieldSingleValue, new StringNode($fieldSingleKey)); - } elseif (\is_bool($fieldSingleValue)) { - $fieldSingleValue = $fieldSingleValue ? 'true' : 'false'; - $fieldArrayItemNode = new ArrayItemNode($fieldSingleValue, new StringNode($fieldSingleKey)); - } elseif (\is_string($fieldSingleKey)) { - $fieldArrayItemNode = new ArrayItemNode(new StringNode($fieldSingleValue), new StringNode($fieldSingleKey)); - } else { - $fieldArrayItemNode = new ArrayItemNode(new StringNode($fieldSingleValue)); - } + $fieldSingleNode = NodeValueNormalizer::normalize($fieldSingleValue); + $fieldArrayItemNode = new ArrayItemNode($fieldSingleNode, \is_string($fieldSingleKey) ? new StringNode($fieldSingleKey) : null); $fieldValueArrayItemNodes[] = $fieldArrayItemNode; } $arrayItemNodes[] = new ArrayItemNode(new CurlyListNode($fieldValueArrayItemNodes), $fieldKey); @@ -77,6 +65,7 @@ final class ArrayItemNodeFactory $arrayItemNodes[] = new ArrayItemNode(new StringNode($fieldValue), $fieldKey); continue; } + $fieldValue = NodeValueNormalizer::normalize($fieldValue); $arrayItemNodes[] = new ArrayItemNode($fieldValue, $fieldKey); } return $arrayItemNodes; diff --git a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php index 38fd3a9f492..51651f0f44f 100644 --- a/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php +++ b/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php @@ -17,6 +17,7 @@ use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDoc\StringNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Exception\NotImplementedYetException; use Rector\PhpParser\Node\Value\ValueResolver; use Rector\Rector\AbstractRector; @@ -87,7 +88,7 @@ CODE_SAMPLE public function refactor(Node $node) : ?Node { $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); - $doctrineAnnotationTagValueNode = $phpDocInfo->getByAnnotationClass('Doctrine\\ORM\\Mapping\\Column'); + $doctrineAnnotationTagValueNode = $phpDocInfo->getByAnnotationClass(MappingClass::COLUMN); if (!$doctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { return null; } diff --git a/vendor/rector/rector-doctrine/src/Enum/MappingClass.php b/vendor/rector/rector-doctrine/src/Enum/MappingClass.php new file mode 100644 index 00000000000..3c9cf3aca98 --- /dev/null +++ b/vendor/rector/rector-doctrine/src/Enum/MappingClass.php @@ -0,0 +1,12 @@ +nodeNameResolver = $nodeNameResolver; } /** - * @param class-string $attributeClass + * @param MappingClass::* $attributeClass * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Property|\PhpParser\Node\Stmt\ClassLike|\PhpParser\Node\Param $node */ public function findAttributeByClassArgByName($node, string $attributeClass, string $argName) : ?Expr diff --git a/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php b/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php index bc7f23ad676..57b847acdc7 100644 --- a/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php +++ b/vendor/rector/rector-doctrine/src/NodeManipulator/ColumnPropertyTypeResolver.php @@ -18,6 +18,7 @@ use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDoc\StringNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Doctrine\NodeAnalyzer\AttributeFinder; use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; final class ColumnPropertyTypeResolver @@ -46,10 +47,6 @@ final class ColumnPropertyTypeResolver * @var string */ private const DATE_TIME_INTERFACE = 'DateTimeInterface'; - /** - * @var string - */ - private const COLUMN_CLASS = 'Doctrine\\ORM\\Mapping\\Column'; /** * @param array $doctrineTypeToScalarType * @see https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/basic-mapping.html#doctrine-mapping-types @@ -100,7 +97,7 @@ final class ColumnPropertyTypeResolver } public function resolve(Property $property, bool $isNullable) : ?Type { - $expr = $this->attributeFinder->findAttributeByClassArgByName($property, self::COLUMN_CLASS, 'type'); + $expr = $this->attributeFinder->findAttributeByClassArgByName($property, MappingClass::COLUMN, 'type'); if ($expr instanceof String_) { return $this->createPHPStanTypeFromDoctrineStringType($expr->value, $isNullable); } @@ -109,7 +106,7 @@ final class ColumnPropertyTypeResolver } private function resolveFromPhpDocInfo(PhpDocInfo $phpDocInfo, bool $isNullable) : ?\PHPStan\Type\Type { - $doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(self::COLUMN_CLASS); + $doctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClass(MappingClass::COLUMN); if (!$doctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { return null; } diff --git a/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php b/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php index 2e4df17053d..b839fcdb500 100644 --- a/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php +++ b/vendor/rector/rector-doctrine/src/NodeManipulator/NullabilityColumnPropertyTypeResolver.php @@ -10,6 +10,7 @@ use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; +use Rector\Doctrine\Enum\MappingClass; use Rector\Doctrine\NodeAnalyzer\AttributeFinder; use Rector\PhpParser\Node\Value\ValueResolver; final class NullabilityColumnPropertyTypeResolver @@ -44,7 +45,7 @@ final class NullabilityColumnPropertyTypeResolver } public function isNullable(Property $property) : bool { - $nullableExpr = $this->attributeFinder->findAttributeByClassArgByName($property, self::COLUMN_CLASS, 'nullable'); + $nullableExpr = $this->attributeFinder->findAttributeByClassArgByName($property, MappingClass::COLUMN, 'nullable'); if ($nullableExpr instanceof Expr) { return $this->valueResolver->isTrue($nullableExpr); }