Download the PHP package slick/cqrs-tools without Composer
On this page you can find all versions of the php package slick/cqrs-tools. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download slick/cqrs-tools
More information about slick/cqrs-tools
Files in slick/cqrs-tools
Package cqrs-tools
Short Description Slick/CQRS is an useful library for Event Souring style applications. It has a collection of tools that can speed up Domain Driven Development and CQRS development.
License MIT
Homepage https://github.com/slickframework/cqrs-tools
Informations about the package cqrs-tools
Slick DDD/CQRS/Event Sourcing
Slick/CQRSTools
is an useful library for Event Souring style applications. It has a collection of tools that can speed up
development using Domain Driven Development and CQRS techniques.
This package is compliant with PSR-2 code standards and PSR-4 autoload standards. It also applies the semantic version 2.0.0 specification.
Install
Via Composer
Usage
Creating events
Events are a simple and descriptive way of recording some action that was done. They usually have some metadata and the values that were used to change the domain. Consider the event of creating a user:
The above class defines an UserWasCreated
event and wraps the ID and name of the crated user. There are
3 more fields, consider metadata, for every event that extends the AbstractEvent
abstract class: EventId
, Author
and OccurredOn
witch holds the unique event ID, an optional author (user, service, etc...) ID and the date
and time the event has occurred.
Note that you need to implement a jsonSerialize()
and unserializeEvent()
. Those methods are used
to publish the event to other services like a database or a message queue and to unserialize the event
from those services.
The metadata fields are serialized and unserialized automatically and you don't need to include them in those
methods.
Recording events with generators
All changes to your domain should generate an event. Therefore a simple way of achieving this is by adding
such behavior to your domain objects.
Consider the following User
object:
This is a very simple implementation of a domain User
. Lets consider that every time we create an
user an UserWasCreated
event should be created:
// Work in progress...
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
Contributing
Please see CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
All versions of cqrs-tools with dependencies
ext-json Version *
league/event Version ^2.2@dev
ramsey/uuid Version 3.x-dev