Eventful - PHP CQRS & ES Framework
The aim of this project is to facilitate the development of PHP application using the Command, Query Responsibility Segregation and Event Sourcing Architecture. Together with Domain Driven Design Helpers., (*1)
It is not meant to be a one size fit all system and will possibly only be useful for developers wishing a quick start in learning these architectures., (*2)
, (*3)
Under Development
This project is under initial development and should definitely not be used in any production systems., (*4)
Problems I'm trying to solve using this framework based on what I didn't like using other similar frameworks and helpers.
1) I want that my models are completely independent from the framework.
The framework should not be intrusive because most projects require custom implementations and structures., (*5)
2) I want to easily be able to apply a TDD approach when developing any application.
3) I want it to integrate to Laravel., (*6)
Components and features required for the initial release.
-
[x] Installation via Composer. GH-2, (*7)
-
[x] Command and Command Handling. GH-3, (*8)
-
[x] Event Bus, subscribe and dispatch. GH-4, (*9)
-
[ ] Event Sourcing. GH-19, (*10)
-
[ ] Event Store. GH-5, (*11)
-
[ ] Event Sourced Infrastructure Abstractions. GH-6, (*12)
-
[ ] Read Model. GH-7, (*13)
-
[ ] Domain Driven Design Helpers such as VOs, Aggregate and Entities. GH-8, (*14)
-
[ ] Scenario based testing helpers. GH-16, (*15)
-
[ ] Extraction of extensible classes within the custom Model to be used as adaptors for the ability of swapping such dependencies and also adding custom code on a per project basis. GH-9, (*16)
-
[ ] Online Documentation using github projects. GH-11, (*17)
-
[ ] Other features to be planned as we go along developing this release., (*18)
Installation
Via composer:, (*19)
composer require swellphp/eventful, (*20)
Documentation
Other components are in progress of being developed., (*23)
Contributing
In progress. However, feel free to fork this repository and submit pull requests., (*24)
All contributions must include tests for the code added, ability for developers to test their code by proving testing helpers when appropriate., (*25)
All contributions must also include an example and in case of full components (in their own directory) a Readme file documenting it's usage., (*26)
Issues must be created in advance of the development work and commit messages must mention the issue key in this format "GH-X"., (*27)
License
Open Source under the MIT Licence. https://opensource.org/licenses/MIT, (*28)