Download the PHP package spriebsch/longbow without Composer
On this page you can find all versions of the php package spriebsch/longbow. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spriebsch/longbow
More information about spriebsch/longbow
Files in spriebsch/longbow
Package longbow
Short Description An event framework for PHP domain events
License BSD-3-Clause
Informations about the package longbow
Longbow
Aim high and shoot far with Longbow, the PHP 8.5 event framework.
Longbow 7 uses Domain Event for event definitions and Sequora for persistence.
Domain events
Events are readonly data objects. Topics and correlation identifiers are declared with attributes:
Generate the topic map with Domain Event's generate-topic-map command and
return its file from the application configuration.
Configuration
Application configuration implements spriebsch\longbow\LongbowConfiguration
and supplies:
- the orchestration directory;
- the generated topic-map file;
- the Sequora SQLite database path;
- the Longbow processor-position SQLite database path.
Configure Longbow with the application factory:
Command handlers persist their returned events through
spriebsch\sequora\EventWriter:
Event streams
Streams extend Longbow's query-focused base class and define Sequora topics:
Processors implement EventStreamProcessor and return an
EventStreamProcessorId. Longbow reads Sequora envelopes, passes their domain
events to processor methods, and stores the envelope event ID as the processor
position.
When a processor fails, Longbow leaves its successful position unchanged and
persists the failed event ID, timestamp, exception class, and exception message.
Applications can use Longbow::processorFailures() to distinguish a processor
that has not started from one that failed. A successful retry clears the
persisted failure.
Upgrading
Longbow 7 is a breaking release. It requires PHP 8.5 and does not migrate
databases created by spriebsch/eventstore; start with a fresh Sequora schema
or migrate existing event data with an application-specific migration.
(c) Stefan Priebsch.
All versions of longbow with dependencies
ext-sqlite3 Version *
spriebsch/di Version ^2.1
spriebsch/domain-event Version ^2.1
spriebsch/filesystem Version ^1.0
spriebsch/sequora Version ^1.3
spriebsch/sqlite Version ^2.1
spriebsch/timestamp Version ^1.1
ext-posix Version *