perfectin / domain
用于处理域事件的TYPO3 Flow包
dev-master
2014-06-26 21:06 UTC
Requires
- typo3/flow: 2.*
This package is not auto-updated.
Last update: 2024-09-14 15:27:14 UTC
README
PerfectIn.Domain是支持域事件的TYPO3.Flow包。
- 无依赖关系的事件发布
- 无依赖关系的事件订阅
触发域事件
use PerfectIn\App\Domain\Event as Event;
function doSomething($something) {
$event = new Event\SomethingHappenedEvent($something);
s}
域事件
- 需要标注 @PerfectIn\Domain\Annotations\Event
- 标注选项:publish => 在构造后自动发布事件(默认=true)
- 标注选项:persist => 在构造后自动持久化事件(待定!)(默认=false)
namespace PerfectIn\App\Domain\Event;
use PerfectIn\Domain\Annotations as Domain;
/**
* something happened event
*
* @Domain\Event
*/
class SomethingHappenedEvent {
}
示例:订阅域事件
- 需要标注 @PerfectIn\Domain\Annotations\Subscribe("classnameOfDomainEvent")
use PerfectIn\Domain\Annotations as Domain;
use PerfectIn\App\Domain\Event as Event;
/**
* @Domain\Subscribe("PerfectIn\App\Domain\Event\SomethingHappenedEvent")
* @param Event\SomethingHappenedEvent $somethingHappenedEvent
*/
public function logSomethingHappened(Event\SomethingHappenedEvent $somethingHappenedEvent) {
}