Query Handling

Query CQRS PHP

Be sure to read CQRS Introduction before diving in this chapter.

Handling Queries

External Query Handlers are Services available in your dependency container, which are defined to handle Queries.

class TicketService
{
    #[QueryHandler] 
    public function getTicket(GetTicketById $query) : array
    {
        //return ticket
    }
}

Queries are Plain Old PHP Objects:

class readonly GetTicketById
{
    public function __construct(
        public string $ticketId
    ) {}
}

To send an Query we will be using send method on QueryBus. Query will be delivered to corresponding Query Handler.

Sending with Routing

Just like with Commands, we may use routing in order to execute queries:

To send an Query we will be using sendWithRouting method on QueryBus. Query will be delivered to corresponding Query Handler.

Converting result from Query Handler

If you have registered Converter for specific Media Type, then you can tell Ecotone to convert result of your Query Bus to specific format. In order to do this, we need to make use of Metadataand replyContentType header.

C

Last updated

Was this helpful?