Prooph Event Store Client
PHP 8.1 Event Store Client Implementation., (*1)
, (*2)
Overview
Prooph Event Store Client supports async non-blocking communication via TCP to EventStore., (*3)
The EventStoreConnection
maintains a full-duplex connection between the client and the Event Store server., (*4)
Extensions
The protobuf
extension from Google is recommended, however it is not required., (*5)
When this extension is missing, the client will fallback to use google/protobuf
installable via composer., (*6)
The extension allegro/php-protobuf is not compatible., (*7)
Additional extensions are only needed if your app necessitates a high numbers of concurrent socket connections., (*8)
Installation
Client
You can install prooph/event-store-client via composer by adding "prooph/event-store-client": "dev-master"
as requirement to your composer.json., (*9)
Server
Using docker:, (*10)
docker run --name eventstore-node -it -p 2113:2113 -p 1113:1113 eventstore/eventstore
Please refer to the documentation of eventstore.org., (*11)
See server section., (*12)
In the docker-folder you'll find three different docker-compose setups (single node, 3-node-cluster and 3-node-dns-cluster)., (*13)
Quick Start
For a short overview please see the examples
folder., (*14)
Unit tests
Plain PHP
Run the server with memory database, (*15)
Note: This is the start-script of the Event Store database, not something provided by this library!, (*16)
./run-node.sh --run-projections=all --mem-db
You need to ignore the ignore
group, (*17)
./vendor/bin/phpunit --exclude-group=ignore
Those are tests that only work against an empty database and can only be run manually., (*18)
Before next run, restart the server. This way you can always start with a clean server., (*19)
Using Docker
See: https://github.com/prooph/event-store-client/tree/master/docker/unittest, (*20)
Documentation
Documentation is on the prooph website., (*21)
Support
Contribute
Please feel free to fork and extend existing or add new plugins and send a pull request with your changes!
To establish a consistent code quality, please provide unit tests for all your changes and may adapt the documentation., (*22)
License
Released under the New BSD License., (*23)