Entender comportamiento
Closed this issue · 3 comments
Hola, estoy empezando a estudiar esta plantilla.
He cogido el caso de uso UserSingUpController en UI pero cuando llego a este punto:
$this->exec(new SignUpCommand($uuid, $email, $password));
me pierdo, no consigo saber como se llega al dominio y da de alta al usuario.
Se supone que despues del CommandBus va un handler pero no consigo localizar y seguir tirando del hilo para llegar al Domain.
¿Me puedes ayudar?
Hey,
Vamos por partes, como Jack el destripador:
SignUpCommand
reside en el namespace App\Application\Command\User\SignUp
. Allí encontrarás SignUpHandler
.
Como se conecta?
Typehint
Symfony Messenger usa typehint del __invoke
para saber como hacer el routing del mensaje. Por lo que cuando en el compiler pass el bus recibe los handlers todos los servicios con tag del componente y bus
usa reflection para recoger esta información y hacer el mapping.
Por lo que el workflow es el siguiente:
Command|Query|Event
-> Bus
-> Middlewares
-> Handler
Te recomiendo echar un ojo a la documentación de symfony messenger y la doc del repo.
Es extensa la doc de messenger así que paciencia. Espero que te sea de ayuda.
Una manera de entender por donde pasa la requests es configurar xdebug en tu IDE y poner un breakpoint del que ir tirando y ver como se relacionan los componentes entre si. Altamente recomendable. ;)
Gracias por tu respuesta Jorge, voy a estudiarlo