sbooker/domain-events-persistence-doctrine

领域事件存储 Doctrine 实现

2.3.2 2024-02-07 15:35 UTC

This package is auto-updated.

Last update: 2024-09-07 16:54:15 UTC


README

Latest Version Software License PHP Version Total Downloads

Doctrine 实现 sbooker/domain-events-persistence

安装

通过 Composer 安装

composer require sbooker/domain-events-persistence-doctrine

配置

在 Symfony 中

config/packages/sbooker_domain_events_persistence_doctrine.yaml

doctrine:
  orm:
    mappings:
      DomainEvents:
        is_bundle: false
        type: xml
        dir: '%kernel.project_dir%/vendor/sbooker/domain-events-persistence-doctrine-doctrine/src/Mapping'
        prefix: Sbooker\DomainEvents\Persistence

services:
  Sbooker\DomainEvents\Persistence\ConsumeStorage:
    alias: Sbooker\DomainEvents\Persistence\Doctrine\PersistentEventDoctrineRepository

  Sbooker\DomainEvents\Persistence\SearchStorage:
    alias: Sbooker\DomainEvents\Persistence\Doctrine\PersistentEventDoctrineRepository

  Sbooker\DomainEvents\Persistence\CleanExpiredStorage:
    alias: Sbooker\DomainEvents\Persistence\Doctrine\PersistentEventDoctrineRepository

  Sbooker\DomainEvents\Persistence\Doctrine\PersistentEventDoctrineRepository:
    class: Sbooker\DomainEvents\Persistence\Doctrine\PersistentEventDoctrineRepository
    factory: ['@doctrine', getRepository]
    arguments:
      - Sbooker\DomainEvents\Persistence\PersistentEvent

  Sbooker\PersistentPointer\Repository:
    class: Sbooker\PersistentPointer\Repository
    arguments:
      - '@Sbooker\PersistentPointer\PointerStorage'

  Sbooker\PersistentPointer\PointerStorage:
    alias: Sbooker\PersistentPointer\PersistentPointerDoctrineRepository

  Sbooker\PersistentPointer\PersistentPointerDoctrineRepository:
    class: Sbooker\PersistentPointer\PersistentPointerDoctrineRepository
    factory: [ '@doctrine', getRepository ]
    arguments:
      - Sbooker\PersistentPointer\Pointer

  Sbooker\DomainEvents\Persistence\DomainEventPreCommitProcessor:
    class: Sbooker\DomainEvents\Persistence\DomainEventPreCommitProcessor
    arguments:
      - '@Sbooker\DomainEvents\Publisher'

  Sbooker\TransactionManager\TransactionManager:
    class: Sbooker\TransactionManager\TransactionManager
    arguments:
      - '@Sbooker\TransactionManager\DoctrineTransactionHandler'
      - '@Sbooker\DomainEvents\Persistence\DomainEventPreCommitProcessor'

  Sbooker\TransactionManager\DoctrineTransactionHandler:
    class: Sbooker\TransactionManager\DoctrineTransactionHandler
    arguments:
      - '@doctrine.orm.default_entity_manager'

  Sbooker\DomainEvents\Publisher:
    alias: Sbooker\DomainEvents\Persistence\PersistentPublisher

  Sbooker\DomainEvents\Persistence\PersistentPublisher:
    class: Sbooker\DomainEvents\Persistence\PersistentPublisher
    arguments:
      - '@Sbooker\TransactionManager\TransactionManager'
      - '@Sbooker\DomainEvents\Persistence\EventNameGiver'
      - '@serializer'

  Sbooker\DomainEvents\Persistence\EventNameGiver:
    class: Sbooker\DomainEvents\Persistence\MapNameGiver
    arguments:
      - []

  # Each event consumer must inherit this configuration
  Sbooker\DomainEvents\Persistence\Consumer:
    abstract: true
    class: Sbooker\DomainEvents\Persistence\Consumer
    arguments:
      - '@Sbooker\DomainEvents\Persistence\ConsumeStorage'
      - '@Sbooker\TransactionManager\TransactionManager'
      - '@serializer'
      - '@Sbooker\PersistentPointer\Repository'
      - '@Sbooker\DomainEvents\Persistence\EventNameGiver'

许可证

请参阅 LICENSE 文件。