DEV Community

Richard McHale
Richard McHale

Posted on

Automatically switching laminas-form Annotations to Attributes with Rector

I couldn't find anything else demonstrating this so here's the rector config I used in case it's any use to someone else

<?php declare(strict_types=1); use Laminas\Form\Annotation\AllowEmpty; use Laminas\Form\Annotation\Filter; use Laminas\Form\Annotation\Name; use Laminas\Form\Annotation\Required; use Laminas\Form\Annotation\Validator; use Rector\Config\RectorConfig; use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector; use Rector\Php80\Rector\Class_\AnnotationToAttributeRector; use Rector\Php80\ValueObject\AnnotationToAttribute; return static function (RectorConfig $rectorConfig): void { $rectorConfig->paths([ __DIR__ . '/module/Application/src', ]); $rectorConfig->importNames(); $rectorConfig->ruleWithConfiguration( AnnotationToAttributeRector::class, [ new AnnotationToAttribute(Filter::class), new AnnotationToAttribute(Name::class), new AnnotationToAttribute(Required::class), new AnnotationToAttribute(Validator::class), new AnnotationToAttribute(AllowEmpty::class), ]); $rectorConfig->rule(StringClassNameToClassConstantRector::class); }; 
Enter fullscreen mode Exit fullscreen mode

You will almost certainly need to change the config paths, and add any missing Annotations to the array

Top comments (0)