broadway / event-store-mongodb
Broadway 的 MongoDB EventStore 实现。
0.5.0
2020-04-30 08:22 UTC
Requires
- php: >=7.2
- ext-mongodb: *
- broadway/broadway: ^2.2.1
- mongodb/mongodb: ^1.0
Requires (Dev)
- broadway/coding-standard: ^1.0
- phpstan/phpstan: @stable
- phpunit/phpunit: ^8.0
- ramsey/uuid: ^4.0
This package is auto-updated.
Last update: 2024-08-25 20:51:30 UTC
README
安装
使用 composer 安装包
$ composer require broadway/event-store-mongodb
配置
注册服务
parameters: mongodb_host: localhost mongodb_port: 27107 mongodb_database: default services: broadway.event_store.mongodb_client: class: MongoDB\Client arguments: ['mongodb://%mongodb_host%:%mongodb_port%'] broadway.event_store.mongodb_collection: class: MongoDB\Collection factory: ['@broadway.event_store.mongodb_client', selectCollection] arguments: ['%mongodb_database%', 'events'] broadway.event_store.mongodb: class: Broadway\EventStore\MongoDB\MongoDBEventStore arguments: ['@broadway.event_store.mongodb_collection', '@broadway.serializer.payload', '@broadway.serializer.metadata']
为事件集合创建索引
db.getCollection('events').createIndex({'uuid': 1, 'playhead': 1},{'unique': 1});
测试
进行测试需要一个正在运行的 MongoDB 实例。要启动本地 MongoDB,可以使用提供的 docker-compose.yml
docker-compose up -d
运行测试
./vendor/bin/phpunit