Skip to content
docs.
WORKSPACE

Your documentation

Explore the project catalog
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet Server✓flowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Catalog

Events

PHP event subscriptions, prefix listeners and dispatch.

Окно терминала
composer config repositories.localzet-events vcs https://github.com/localzet/Events
composer require localzet/events:dev-main

localzet\Events is a synchronous dispatcher in one PHP process. on($name, $listener) returns an ID; off($name, $id) removes it and returns 1 or 0. A trailing * matches a prefix, not an arbitrary glob. Exact and prefix listeners share registration order.

emit($name, $data, $halt = false) passes data and event name to each callback. Normally it returns an array of results: listener exceptions are included as Throwable values and dispatch continues; false stops propagation. Halt mode returns the first non-null result, or null. Use listeners(), list() and has() to inspect registrations.

Register worker listeners at startup rather than on every request: the map is static. Remove temporary subscriptions with off to avoid retaining callbacks and captured data. This is not an inter-process queue or a delivery guarantee across restarts.

  • php: >=8.0
<?php
declare(strict_types=1);
use localzet\Events;
require __DIR__ . '/vendor/autoload.php';
$audit = Events::on('invoice.*', static fn (array $invoice, string $name): string => 'audit:' . $name);
$paid = Events::on('invoice.paid', static fn (array $invoice): string => 'paid:' . $invoice['id']);
try {
echo json_encode(Events::emit('invoice.paid', ['id' => 42]), JSON_THROW_ON_ERROR), PHP_EOL;
} finally {
Events::off('invoice.*', $audit);
Events::off('invoice.paid', $paid);
}

Source · AGPL-3.0