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

Event

Событие со строковым именем — когда отдельный класс события не нужен.

Имя — конкретный топик: непустые сегменты через точку, без пробелов и без символов шаблонов *, #, {, }. Регистр сохраняется: bitrix.main.OnAfterUserAdd и bitrix.main.onafteruseradd — разные события.

Атрибуты неизменяемы: withAttribute() возвращает копию. Payload не копируется: если это объект, все копии события ссылаются на один и тот же объект.

$event = new Event('shop.order.42.paid', ['amount' => 1500]);

Methods

__construct

public __construct(string $name, \Selyusize\EventsRouter\TPayload $payload = null, array<non-empty-string,mixed> $attributes = []): mixed

Parameters:

Parameter Type Description
$name string топик из сегментов через точку, например shop.order.42.paid
$payload \Selyusize\EventsRouter\TPayload данные события
$attributes array начальные атрибуты

Throws:

если имя не является корректным топиком - InvalidEventName


getName

Имя события — топик из сегментов через точку.

public getName(): non-empty-string

getPayload

Данные события: массив, DTO или любой другой объект.

public getPayload(): \Selyusize\EventsRouter\Contract\Core\TPayload

getAttributes

Все атрибуты: параметры из шаблона маршрута и то, что добавили middleware.

public getAttributes(): array<non-empty-string,mixed>

getAttribute

Значение атрибута или $default, если атрибута нет.

public getAttribute(string $name, mixed $default = null): mixed

Parameters:

Parameter Type Description
$name string
$default mixed

withAttribute

Копия события с добавленным или заменённым атрибутом.

public withAttribute(string $name, mixed $value): static

Parameters:

Parameter Type Description
$name string
$value mixed