antismok/domain-events-publisher-bundle

用于领域事件发布的symfony扩展包

v1.1 2018-10-29 01:19 UTC

This package is auto-updated.

Last update: 2024-09-29 05:08:36 UTC


README

用于领域事件发布的symfony扩展包

订阅领域事件

some_domain_listener:
    class: Antismok\Identity\Application\UserCreatedHandler
    tags:
        - { name: domain.event_listener, event: Antismok\Identity\Domain\UserCreatedEvent, method: handle}
declare(strict_types=1);

namespace Antismok\Identity\Application;

use Antismok\Identity\Domain\UserCreatedEvent;

class UserCreatedHandler
{
    public function handle(UserCreatedEvent $event)
    {
        //....
    }
}

在模型中调用

<?php

declare(strict_types=1);

namespace Antismok\Identity\Domain\Model;

use Antismok\DomainEventPublisher\DomainEventPublisher;
use Antismok\Identity\Domain\UserCreatedEvent;

class User
{
    public function register(string $id, string $login): void
    {
        //.....
        DomainEventPublisher::getInstance()
            ->publish(new UserCreatedEvent($id, $login))
        ;
    }
}

您可以使用依赖注入服务 @domain_event_dispatcher 或 @Antismok\DomainEventPublisher\DomainEventPublisher