grifix/event-store-bundle

此包已被废弃,不再维护。未建议替代包。

Grifix Event Store Symfony Bundle

dev-main 2022-12-06 07:22 UTC

This package is auto-updated.

Last update: 2023-07-26 07:04:42 UTC


README

grifix/event-storeSymfony集成

安装

composer require grifix/event-store-bundle

用法

  • 阅读Grifix Event Store 文档
  • 按照此示例设置配置

      #set up database connection
      doctrine: 
        dbal:
          dbname: 'db'
          host: db
          port: 5432
          user: 'user'
          password: 'password'
          driver: pdo_pgsql
        
      grifix_event_store:
        #set up message_broker
        message_broker: 
          host: rabbitmq
          port: 5672
          user: 'user'
          password: 'password'
        
        #regiser streams
        streams: 
          - name: user
            producer_class: Grifix\EventStoreBundle\Tests\Dummies\User
        
        #regiser events 
        events: 
          #user.created
          - name: created
            stream: user
            event_class: Grifix\EventStoreBundle\Tests\Dummies\UserCreatedEvent
            version_converter: Grifix\EventStoreBundle\Tests\Dummies\UserVersionConverter
            schemas:
              #v1
              - - property: userId
                  type: string
                - property: name
                  type: string
              #v2
              - - property: userId
                  type: string
                - property: name
                  type: string
                - property: email
                  type: string
          #user.deleted
          - name: deleted
            stream: user
            event_class: Grifix\EventStoreBundle\Tests\Dummies\UserDeletedEvent
            schemas:
              #v1
              - - property: userId
                  type: string
                - property: name
                  type: string
        
        #register subscriptions
        subscriptions:
          - name: user_subscription
            stream: user
            subscriber_class: Grifix\EventStoreBundle\Tests\Dummies\UserSubscriber
            starting_events: [user.created]
            finishing_events: [user.deleted]
        
      services:
        #register version converter
        Grifix\EventStoreBundle\Tests\Dummies\UserVersionConverter:
          public: true
        
        #register subscribers
        Grifix\EventStoreBundle\Tests\Dummies\UserSubscriber:
          public: true
    
  • 通过执行grifix:event-store:run-event-publisher-worker控制台命令启动事件发布者进程
  • 通过执行grifix:event-store:run-event-consumer控制台命令启动事件消费者进程
  • 将事件存储库作为依赖项注入,或从Symfony 容器中获取,而不是通过EventStore::create()创建它