mauretto78 / simple-event-store-manager-bundle
PHP 包
v2.0.2
2017-09-19 15:20 UTC
Requires
- mauretto78/simple-event-store-manager: ^2.0
- symfony/config: ~2.3|~3.0
- symfony/dependency-injection: ~2.3|~3.0
- symfony/framework-bundle: ^3.3
- symfony/http-kernel: ~2.3|~3.0
- symfony/yaml: ~2.3|~3.0
README
这是 Simple EventStore Manager 包的官方 Symfony 包。
安装指南
步骤 1: 使用 composer 将 Simple EventStore Manager 包添加到您的项目中
composer require mauretto78/simple-event-store-manager-bundle
步骤 2: 设置 config.yml 以配置驱动程序和连接参数
以下是一个示例
# Simple EventStore Manager simple_event_store_manager: driver: 'mongo' api_format: 'yaml' parameters: host: 'localhost' username: ~ password: ~ database: 'eventstore_demo' port: '27017' return_type: 'array' elastic: host: 'localhost' port: '9200'
return_type
是一个可选参数;您可以选择返回聚合数据的数组或对象api_format
是一个可选参数;您可以选择json
(默认)、xml
或yaml
elastic
是一个可选参数;您可以将事件发送到 Elastic 服务器
有关更多详细信息,请参阅 Simple EventStore Manager 页面。
步骤 3: 通过添加 Simple EventStore Manager 包来设置您的 AppKernel.php
// .. $bundles[] = new SimpleEventStoreManager\Bundle\SimpleEventStoreManagerBundle();
步骤 4: 设置您的 routing.yml
在您的 routing.yml
文件底部添加以下行
_simple_event_store_manager: resource: '@SimpleEventStoreManagerBundle/Resources/config/routing.yml'
使用指南
您可以在控制器中使用 EventsManager
// .. $manager = $this->container->get('simple_event_store_manager'); $eventManager = $manager->getEventMananger(); // store events in an aggregate $eventManager->storeEvents( 'name-of-your-aggregate', [ ... ] ); // get event streams $eventQuery = $eventStoreManager->getEventQuery(); $stream = $eventQuery->fromAggregate('Your aggregate'); foreach ($stream as $event){ // .. }
或将它注入到您的服务和类中
services: # ... AppBundle\Your\Service: arguments: ['@simple_event_store_manager']
有关该库的基本使用方法,请参阅 Simple EventStore Manager 的官方文档。
API 支持
自动在 /_events/{aggregate}/{page}
路由上暴露一个 API 端点;它将自动分页,每页 25 条记录。
当页面完成时,它将自动设置无限缓存。
支持
如果您发现问题或有任何想法,请参阅 本部分。
作者
- Mauro Cassani - github
许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件