Find the best Rector rule to solve your problem. Searching through 676 rules.

Found 2 rules:

GetFiltersToAsTwigFilterAttributeRector

Changes getFilters() in TwigExtension to #[TwigFilter] marker attribute above function

 use Twig\Extension\AbstractExtension;
+use Twig\Attribute\AsTwigFilter;

 class SomeClass extends AbstractExtension
 {
-    public function getFilters()
-    {
-        return [
-            new \Twig\TwigFilter('filter_name', [$this, 'localMethod']),
-        ];
-    }
-
+    #[TwigFilter('filter_name')]
     public function localMethod($value)
     {
         return $value;
     }
 }

GetFunctionsToAsTwigFunctionAttributeRector

Changes getFunctions() in TwigExtension to #[AsTwigFunction] marker attribute above local class method

 use Twig\Extension\AbstractExtension;
+use Twig\Attribute\AsTwigFunction;

 class SomeClass extends AbstractExtension
 {
-    public function getFunctions()
-    {
-        return [
-            new \Twig\TwigFunction('function_name', [$this, 'localMethod']),
-        ];
-    }
-
+    #[AsTwigFunction('function_name')]
     public function localMethod($value)
     {
         return $value;
     }
 }