Configuration
Setting up Projections
#[Projection("inProgressTicketList", Ticket::class] // 1
class InProgressTicketList
{
public function __construct(private Connection $connection) {}
#[EventHandler] // 2
public function addTicket(TicketWasRegistered $event, array $metadata) : void
{
$result = $this->connection->executeStatement(<<<SQL
INSERT INTO in_progress_tickets VALUES (?,?)
SQL, [$event->getTicketId(), $event->getTicketType()]);
}
#[QueryHandler("getInProgressTickets")] // 3
public function getTickets() : array
{
return $this->connection->executeQuery(<<<SQL
SELECT * FROM in_progress_tickets
SQL)->fetchAllAssociative();
}
}Document Store
Last updated
Was this helpful?