スケーラブルな Web アーキテクチャ、特にイベント ドリブン デザイン (同期ジョブと非同期ジョブ) で分離する必要があるすべてのプロセスを考えると、ACE を挿入するのに最適な場所 (および最適な時間) はどこにあるのだろうかと思います。
私の最初の「素朴な」動きは、関連するオブジェクトが作成されたのと同じサービス メソッドにそれらを挿入することです。
次のようになります。
class AlbumManager
{
public function createAlbum(Album $album)
{
$this->albumRepository->save($album);
$this->permissionManager->grantPrivileges($album->getUser(), $album, MaskBuilder::MASK_OWNER);
$event = new AlbumEvent($album);
$this->dispatcher->dispatch(AlbumEvents::CREATE, $event);
}
}
しかし、それは正しい場所ですか?他のものは、同期的または非同期的に動作するイベント リスナー (オフライン キュー) で処理されるため、ACE で同じことをしないのはなぜですか?
通常、アプリケーションでは、すぐに実行する必要がある操作と、オフラインで実行できる (必要な) 操作 (キュー) を常に識別します。
セキュリティはどこにありますか?;-)
ありがとさよなら。
ベンジャミン。