rector: Doctrine annotations are removed by unknown rector
| Subject | Details |
|---|---|
| PHP version | PHP 7.3.9-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep 2 2019 12:54:24) ( NTS ) |
| Full Command | vendor/bin/rector --ansi --dry-run --debug process src/Entity/Content/Content/ContentPosition.php |
Current Behaviour
Rector is currently removing critical Doctrine annotations with my current configuration. Sometimes, it says that Rector\Rector\Class_\RenameClassRector has been applied (but excluding it doesn’t fix the issue). Sometimes, no rector is stated as having been applied, yet the removal is still done.
It happens on many files in my project, for both @ORM\JoinColumn and @ORM\Order annotations.
I’ve managed to get rid of the issue by disabling the following imports :
#- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit60.yaml' }
#- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit80.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony30.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony33.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony40.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony41.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony42.yaml' }
#- { resource: 'vendor/rector/rector/config/set/symfony/symfony43.yaml' }
#- { resource: 'vendor/rector/rector/config/set/twig/twig112.yaml' }
#- { resource: 'vendor/rector/rector/config/set/twig/twig140.yaml' }
#- { resource: 'vendor/rector/rector/config/set/twig/twig20.yaml' }
#- { resource: 'vendor/rector/rector/config/set/twig/twig240.yaml' }
When I uncomment any one of these, the error will happen again. Hopefully, as you know these config / rectors better than I do, it’s might help you understand where it could come from ?
I guess you’ll agree it’s not a very nice long-term solution…
vendor/bin/rector --ansi --dry-run --debug process src/Entity/Content/Content/ContentPosition.php
Rector v0.5.12
Config file: rector.yaml
[parsing] src/Entity/Content/Content/ContentPosition.php
[refactoring] src/Entity/Content/Content/ContentPosition.php
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector
[applying] Rector\CodingStyle\Rector\Class_\AddArrayDefaultToArrayPropertyRector
[applying] Rector\SOLID\Rector\Class_\FinalizeClassesWithoutChildrenRector
[applying] Rector\SOLID\Rector\Class_\MakeUnusedClassesWithChildrenAbstractRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Symfony\Rector\Class_\MakeCommandLazyRector
[applying] Rector\SymfonyCodeQuality\Rector\Class_\EventListenerToEventSubscriberRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Property\VarToPublicPropertyRector
[applying] Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Property\VarToPublicPropertyRector
[applying] Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Property\VarToPublicPropertyRector
[applying] Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Property\VarToPublicPropertyRector
[applying] Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Property\VarToPublicPropertyRector
[applying] Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
[applying] Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector
[applying] Rector\CodingStyle\Rector\String_\ManualJsonStringToJsonEncodeArrayRector
[applying] Rector\MysqlToMysqli\Rector\Assign\MysqlAssignToMysqliRector
[applying] Rector\Php\Rector\List_\ListSplitStringRector
[applying] Rector\Php\Rector\List_\ListSwapArrayOrderRector
[applying] Rector\Php\Rector\Assign\AssignArrayToStringRector
[applying] Rector\Php\Rector\Each\ListEachRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
[applying] Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector
[applying] Rector\CodingStyle\Rector\String_\ManualJsonStringToJsonEncodeArrayRector
[applying] Rector\MysqlToMysqli\Rector\Assign\MysqlAssignToMysqliRector
[applying] Rector\Php\Rector\List_\ListSplitStringRector
[applying] Rector\Php\Rector\List_\ListSwapArrayOrderRector
[applying] Rector\Php\Rector\Assign\AssignArrayToStringRector
[applying] Rector\Php\Rector\Each\ListEachRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
[applying] Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector
[applying] Rector\CodingStyle\Rector\String_\ManualJsonStringToJsonEncodeArrayRector
[applying] Rector\MysqlToMysqli\Rector\Assign\MysqlAssignToMysqliRector
[applying] Rector\Php\Rector\List_\ListSplitStringRector
[applying] Rector\Php\Rector\List_\ListSwapArrayOrderRector
[applying] Rector\Php\Rector\Assign\AssignArrayToStringRector
[applying] Rector\Php\Rector\Each\ListEachRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
[applying] Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector
[applying] Rector\Rector\Typehint\ParentTypehintedArgumentRector
[applying] Rector\Rector\Argument\ArgumentRemoverRector
[applying] Rector\Php\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector
[applying] Rector\Php\Rector\FunctionLike\Php4ConstructorRector
[applying] Rector\Php\Rector\FunctionLike\ExceptionHandlerTypehintRector
[applying] Rector\Symfony\Rector\HttpKernel\GetRequestRector
[applying] Rector\Rector\MethodCall\RenameMethodRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Argument\ArgumentDefaultValueReplacerRector
[applying] Rector\Rector\Argument\ArgumentAdderRector
[applying] Rector\Rector\ClassMethod\AddReturnTypeDeclarationRector
[applying] Rector\Rector\Visibility\ChangeMethodVisibilityRector
[applying] Rector\Rector\ClassMethod\WrapReturnRector
[applying] Rector\Rector\ClassMethod\AddMethodParentCallRector
[applying] Rector\Sensio\Rector\FrameworkExtraBundle\TemplateAnnotationRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\Rector\Class_\RenameClassRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
[applying] Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector
[applying] Rector\CodingStyle\Rector\String_\ManualJsonStringToJsonEncodeArrayRector
[applying] Rector\MysqlToMysqli\Rector\Assign\MysqlAssignToMysqliRector
[applying] Rector\Php\Rector\List_\ListSplitStringRector
[applying] Rector\Php\Rector\List_\ListSwapArrayOrderRector
[applying] Rector\Php\Rector\Assign\AssignArrayToStringRector
[applying] Rector\Php\Rector\Each\ListEachRector
[applying] Rector\Php\Rector\Name\ReservedObjectRector
[applying] Rector\Rector\Namespace_\PseudoNamespaceToNamespaceRector
[applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
[applying] Rector\Twig\Rector\SimpleFunctionAndFilterRector
[printing] src/Entity/Content/Content/ContentPosition.php
1 file with changes
===================
1) src/Entity/Content/Content/ContentPosition.php
---------- begin diff ----------
--- Original
+++ New
@@ -49,7 +49,6 @@
* inversedBy="childPositions",
* cascade={"persist"}
* )
- * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE", nullable=true)
*/
private $parent;
----------- end diff -----------
Applied rectors:
* Rector\Rector\Class_\RenameClassRector
[OK] Rector is done! 1 changed files
Minimal PHP Code Causing Issue
Here’s the PHP file src/Entity/Content/Content/ContentPosition.php :
<?php
declare(strict_types=1);
namespace App\Entity\Content\Content;
use App\Entity\Content\Content;
use App\Entity\Content\Descriptor\Control;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(
* name="Content_Position",
* indexes={ @ORM\Index(name="IDX_CONTENT_POSITION", columns={"position"}) }
* )
* @ORM\Entity()
*/
class ContentPosition
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Control
*
* @ORM\ManyToOne(targetEntity="App\Entity\Content\Descriptor\Control", inversedBy="positions")
* @ORM\JoinColumn(name="control_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $control;
/**
* @var Content
*
* @ORM\ManyToOne(targetEntity="App\Entity\Content\Content", inversedBy="positions", cascade={"persist"})
* @ORM\JoinColumn(name="content_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $content;
/**
* @var Content
*
* @ORM\ManyToOne(targetEntity="App\Entity\Content\Content",
* inversedBy="childPositions",
* cascade={"persist"}
* )
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE", nullable=true)
*/
private $parent;
/**
* @var int
*
* @ORM\Column(name="position", type="integer", nullable=false)
*/
private $position = 0;
public function getId(): ?int
{
return $this->id;
}
public function getControl(): ?Control
{
return $this->control;
}
public function setControl(?Control $control): self
{
$this->control = $control;
return $this;
}
public function getParent(): ?Content
{
return $this->parent;
}
public function setParent(?Content $parent): self
{
$this->parent = $parent;
return $this;
}
public function getContent(): ?Content
{
return $this->content;
}
public function setContent(?Content $content): self
{
$this->content = $content;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(?int $position): self
{
$this->position = $position;
return $this;
}
}
Here’s my configuration file :
imports:
# Code quality
- { resource: 'vendor/rector/rector/config/set/celebrity/celebrity.yaml' }
- { resource: 'vendor/rector/rector/config/set/code-quality/code-quality.yaml' }
- { resource: 'vendor/rector/rector/config/set/coding-style/coding-style.yaml' }
- { resource: 'vendor/rector/rector/config/set/solid/solid.yaml' }
# This currently has some bugs and is very risky to run, see https://github.com/rectorphp/rector/issues/1630
# - { resource: 'vendor/rector/rector/config/set/dead-code/dead-code.yaml' }
# Doctrine
- { resource: 'vendor/rector/rector/config/set/doctrine/doctrine25.yaml' }
# PHP
- { resource: 'vendor/rector/rector/config/set/php/php52.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php53.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php54.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php55.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php56.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php70.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php71.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php72.yaml' }
- { resource: 'vendor/rector/rector/config/set/php/php73.yaml' }
# PHPUnit
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit60.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit70.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit80.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit-code-quality.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit-exception.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit-mock.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit-specific-method.yaml' }
- { resource: 'vendor/rector/rector/config/set/phpunit/phpunit-yield-data-provider.yaml' }
# Symfony
- { resource: 'vendor/rector/rector/config/set/symfony/symfony26.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony28.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony30.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony31.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony32.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony33.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony34.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony40.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony41.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony42.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony43.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony-code-quality.yaml' }
- { resource: 'vendor/rector/rector/config/set/symfony/symfony-constructor-injection.yaml' }
# FrameworkBundle
- { resource: 'vendor/rector/rector/config/set/sensio/framework-extra-bundle-30.yaml' }
- { resource: 'vendor/rector/rector/config/set/sensio/framework-extra-bundle-50.yaml' }
# Twig
- { resource: 'vendor/rector/rector/config/set/twig/twig112.yaml' }
- { resource: 'vendor/rector/rector/config/set/twig/twig127.yaml' }
- { resource: 'vendor/rector/rector/config/set/twig/twig134.yaml' }
- { resource: 'vendor/rector/rector/config/set/twig/twig140.yaml' }
- { resource: 'vendor/rector/rector/config/set/twig/twig20.yaml' }
- { resource: 'vendor/rector/rector/config/set/twig/twig240.yaml' }
parameters:
kernel_class: \Tests\App\AppKernel
autoload_paths:
- 'vendor/bin/.phpunit/phpunit-8.1/vendor/autoload.php'
exclude_paths:
# Unit tests fail with the following error : Could not process "*.php" file, due to:
# "Rector\NodeTypeResolver\PerNodeTypeResolver\NameTypeResolver::resolveFullyQualifiedName() on line 51".
# That's not the end of the world, so let's skip it.
- 'tests/Unit/*'
# These two fail with the following error : Could not process "*.php" file, due to :
# - Class "App\Entity\Content\Descriptor\Control\ValueControl" for property "translatable" was not found.
# - Class "App\Entity\Timestampable" for property "createdAt" was not found.
# Would be nice to fix them, but as there's quite a lot of magic around Translatable/Timestampable, maybe we can't.
- 'src/Entity/Content/Descriptor/Control/ValueControl.php'
- 'src/Entity/Timestampable.php'
exclude_rectors:
# Prefer single quotes everywhere (with some escapes) than a mix (and people start using double quotes)
- 'Rector\CodingStyle\Rector\String_\SymplifyQuoteEscapeRector'
# This one tends to do changes that are hard to review, so let's skip it
- 'Rector\SOLID\Rector\ClassConst\PrivatizeLocalClassConstantRector'
# This one adds imports for root namespace classes, see https://github.com/rectorphp/rector/issues/1911
- 'Rector\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector'
# This one currently has some bugs, see https://github.com/rectorphp/rector/issues/1632
- 'Rector\Php\Rector\FuncCall\StringifyStrNeedlesRector'
# This currently has some bugs, see https://github.com/rectorphp/rector/issues/1116#issuecomment-508771594
- 'Rector\CodingStyle\Rector\Use_\RemoveUnusedAliasRector'
Expected Behaviour
The Doctrine annotation should not be removed.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 19 (19 by maintainers)
Here’s with
--debugon0.5.11:And the file is :
Works! Now, I have 3 other “type of errors” (meaning I get many of these) running on our entire code base on
dev-master. Here’s an example of each :Should I open issues for each ? (they are not here on
v0.5.11) I can try and share “anonymized” code for the 3 examples if you need it. Let me know.As a side question : what’s the current “release process” for Rector ? Should I fix the version to “0.5.11” and only upgrade to the next one when I know I’ll have time to investigate/debug these kind of issues ? (I’d guess you’re not really using semver here, right?)