gbprod / domain-event

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

用于管理PHP领域驱动模型(DDD)应用中领域事件的库

v0.1.0 2016-03-11 18:18 UTC

This package is auto-updated.

Last update: 2020-06-07 07:57:05 UTC


README

stability-deprecated

Build Status Scrutinizer Code Quality Code Coverage

Latest Stable Version Total Downloads Latest Unstable Version License

用于管理PHP领域驱动模型(DDD)应用中领域事件的库。

使用方法

创建领域事件

<?php

namespace GBProd\Acme\Event;

use GBProd\DomainEvent\DomainEvent;

class SomethingHappenedEvent implements DomainEvent
{
    private $id;
    
    public function __construct($id)
    {
        $this->id = $id;
    }
    
    public function getAggregateId()
    {
        return $id;
    }
}

引发事件

<?php

namespace GBProd\Acme\Entity;

use GBProd\DomainEvent\EventProvider;
use GBProd\DomainEvent\EventProviderTrait;

final class MyEntity implements EventProvider
{
    use EventProviderTrait;
    
    public function doSomething()
    {
        $this->raise(
            new SomethingHappenedEvent($this->id)
        );
    }
}

派发事件

<?php

namespace GBProd\Acme\Repository;

use GBProd\DomainEvent\EventProvider;

class MyEntityRepository
{
    public function save(MyEntity $entity)
    {
        $this->persist($entity);
        
        $this->dispatcher->dispatch($entity);
    }
}

要求

  • PHP 5.5+

安装

使用Composer

composer require gbprod/domain-event