RequestQueryToMapQueryParameterRector
Move $request->query->getInt(), getBoolean(), getString() and getEnum() calls in controller actions to #[MapQueryParameter] action parameters
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Attribute\MapQueryParameter;
final class SomeController extends AbstractController
{
- public function list(Request $request)
+ public function list(Request $request, #[MapQueryParameter] int $page = 1, #[MapQueryParameter(name: 'published')] bool $isPublished = false)
{
- $page = $request->query->getInt('page', 1);
- $isPublished = $request->query->getBoolean('published');
}
}
Configure your rector.php:
<?php
use Rector\Config\RectorConfig;
use Rector\Symfony\CodeQuality\Rector\ClassMethod\RequestQueryToMapQueryParameterRector;
return RectorConfig::configure()
->withRules([
RequestQueryToMapQueryParameterRector::class,
]);
PACKAGE:
symfony/http-kernel >=6.3