Перейти к содержанию

InMemoryEventSource

Очередь событий в памяти — для тестов и простых сценариев.

События, добавленные через push() во время обработки, тоже будут разосланы: слушатель может положить в очередь следующее событие, и run() его обработает.

$source = new InMemoryEventSource(new Event('order.created'), new Event('order.42.paid'));

$events->run($source);   // 2

Methods

__construct

public __construct(\Selyusize\EventsRouter\Contract\Core\EventInterface $events): mixed

Parameters:

Parameter Type Description
$events \Selyusize\EventsRouter\Contract\Core\EventInterface

push

Добавить событие в конец очереди.

public push(\Selyusize\EventsRouter\Contract\Core\EventInterface $event): self

Parameters:

Parameter Type Description
$event \Selyusize\EventsRouter\Contract\Core\EventInterface

count

Сколько событий ещё ждёт обработки.

public count(): int

events

Отдаёт события по одному и убирает их из очереди, пока очередь не опустеет.

public events(): iterable<\Selyusize\EventsRouter\Contract\Core\EventInterface>