예제 #1
0
 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()));
         }
     });
 }
예제 #2
0
 private function formatAttachments(Post $post) : array
 {
     return array_map(function (Attachment $attachment) {
         return $this->attachmentFormatter->format($attachment);
     }, $this->attachmentService->getManyByIds($post->getAttachmentIds()));
 }