liquidrazor / event-manager
Deterministic event infrastructure for immutable event contracts, registries, and synchronous dispatch.
v0.1.0
2026-04-03 15:52 UTC
Requires
- php: ^8.3
Requires (Dev)
- phpunit/phpunit: ^12.5
README
Overview
liquidrazor/event-manager is a PHP 8.3 library for deterministic event infrastructure.
It provides:
- immutable event contracts
- kernel-state and process event family markers
- lockable event registries
- strict event validation and classification
- synchronous listener dispatch
- loader primitives for externally discovered classes
It does not provide:
- concrete kernel lifecycle events
- concrete process event catalogs
- filesystem scanning
- async or distributed event delivery
- framework-specific wiring
The package is designed to work alongside discovery tools such as liquidrazor/file-locator and liquidrazor/class-locator, while keeping event semantics outside this repository.
Documentation
Key Guarantees
- Concrete events must implement exactly one supported family:
KernelStateEventInterfaceorProcessEventInterface. - Dispatch is synchronous and deterministic: listeners are ordered by priority, then by registration sequence.
- Registries are family-specific and lockable, and the process registry advertises additive-only behavior.
- Discovery remains external; this package validates and loads discovered metadata but does not scan the filesystem.
Implementation Notes
StrictEventValidatorperforms both event family resolution and validation.DiscoveredEventLoaderroutes validatedDiscoveredClassmetadata into the correct registry.KernelEventRegistryandProcessEventRegistryenforce family segregation, duplicate protection, and lock checks.OrderedListenerProviderandSynchronousEventDispatcherprovide explicit, in-process listener execution.
Registry phase timing is architectural policy, not automatic runtime behavior in this package. The code provides locking primitives; the integrating application decides when registries are locked.