Вы читаете предварительную версию v0.1. API могут измениться.
~ 1 мин чтенияОбновлено 2026-10-29

События

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

Регистрация слушателя

use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;

$events = $app->container->get(EventDispatcherInterface::class);
$events->addListener(OrderPlaced::class, function (OrderPlaced $event) {
    // React to the event synchronously.
});

Отправка объекта

final readonly class OrderPlaced
{
    public function __construct(public int $orderId) {}
}

$events->dispatch(new OrderPlaced(42));

Регистрируйте слушателей в методе boot() провайдера сервисов. Elang связывает интерфейс контрактов с Symfony EventDispatcher как singleton.

Модель выполнения

Слушатели выполняются синхронно в текущем процессе PHP. Явно отправляйте медленные операции через очередь заданий с JSON-данными в базе данных, описанную в /docs/v0.1/queues; слушатели не превращаются в фоновые задания автоматически. Явно проектируйте обработку исключений и границы транзакций.

Нужна помощь?

Проверьте руководство по решению проблем, найдите термин в глоссарий, или пройдите полноценный проект доски задач.

Поиск по документации Elang

Начните вводить, чтобы найти следующий шаг.