Closed
Description
Symfony version(s) affected: 4.11 -> 5.1.3
Description
I try to use ArgumentValueResolver but is never thrown by the kernel
How to reproduce
Create a new project from scratch, create a controller :
namespace App\Controller;
use Ramsey\Uuid\UuidInterface;
use Symfony\Component\HttpFoundation\Response;
final class DefaultController
{
public function __invoke(UuidInterface $uuid): Response
{
return new Response($uuid->toString());
}
}
Create the resolver UuidArgumentResolver
namespace App\ArgumentResolver;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
class UuidValueResolver implements ArgumentValueResolverInterface
{
public function supports(Request $request, ArgumentMetadata $argument)
{
var_dump($argument);die;
}
public function resolve(Request $request, ArgumentMetadata $argument)
{
var_dump($argument);die;
}
}
Then declare the service related to UuidValueResolver
App\ArgumentResolver\UuidValueResolver:
tags:
- { name: controller.argument_value_resolver, priority: 50 }
When the controller is called, thrown an exception
Argument 1 passed to App\Controller\DefaultController::__invoke() must be an instance of Ramsey\Uuid\UuidInterface, string given
Additional context
Debug container
bin/console debug:container --tag=controller.argument_value_resolver
Symfony Container Services Tagged with "controller.argument_value_resolver" Tag
===============================================================================
---------------------------------------- ---------- ----------------------------------------------------------------------------------------
Service ID priority Class name
---------------------------------------- ---------- ----------------------------------------------------------------------------------------
argument_resolver.request_attribute 100 Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
App\ArgumentResolver\UuidValueResolver 50 App\ArgumentResolver\UuidValueResolver
"
argument_resolver.request 50 Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
argument_resolver.session 50 Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver
argument_resolver.service -50 Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver
argument_resolver.default -100 Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
argument_resolver.variadic -150 Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver