public function up(EventEmitterInterface $globalEmitter) { $ps = $this->postService; $as = $this->attachmentService; $ps->getEventEmitter()->on(PostService::EVENT_CREATE, function (Post $post) use($as, $ps) { if ($post->hasAttachments()) { array_map(function (int $attachmentId) use($post, $as, $ps) { $as->attach(new PostAttachmentOwner($post->getId()), $as->getById($attachmentId)); }, $post->getAttachmentIds()); } }); $ps->getEventEmitter()->on(PostService::EVENT_DELETE, function (Post $post) use($as) { if ($post->hasAttachments()) { array_map(function (Attachment $attachment) use($as) { $as->destroy($attachment); }, $this->attachmentService->getManyByIds($post->getAttachmentIds())); } }); }
private function formatAttachments(Post $post) : array { return array_map(function (Attachment $attachment) { return $this->attachmentFormatter->format($attachment); }, $this->attachmentService->getManyByIds($post->getAttachmentIds())); }