mauretto78/simple-event-store-manager-bundle

PHP 包

v2.0.2 2017-09-19 15:20 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:13:47 UTC


README

Codacy Badge license Packagist

这是 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(默认)、xmlyaml
  • 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 条记录

当页面完成时,它将自动设置无限缓存。

支持

如果您发现问题或有任何想法,请参阅 本部分

作者

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件