blacksmith-project/event-manager

该包已被弃用,不再维护。未建议替代包。

一个提供事件工具的PHP库

v0.1.0 2019-09-07 10:33 UTC

This package is auto-updated.

Last update: 2020-03-07 11:55:42 UTC


README

Scrutinizer Code Quality Code Coverage

一个提供管理领域驱动设计事件工具的PHP库。

如何使用

让您的实体实现 \BSP\EventManager\IRegisterEvent 并使用 \BSP\EventManager\EventRegistration

您的实体现在可以包含它自己的事件。

示例

class Entity implements IRegisterEvent
{
	use EventRegistration;

	private $id;
	
	private function __construct(UuidInterface $id)
	{
		$this->id = $id;
	}
	
	public static method Register(UuidInterface $id): self
	{
		$entity = new self($id);
		
		$this->recordedEvents[] = new EntityRegistered($id);
		
		return $entity;
	}
}

您现在可以访问 $entity->recordedEvents(),可以遍历这些,例如分发它们。
然后,您可以调用 $entity->clearRegisteredEvents() 来清除它们。