/** * @param PhotoDocument $photoDocument * @return Photo */ public function buildPhotoEntity(PhotoDocument $photoDocument) { $photo = new Photo(); $photo->setThumbnails($photoDocument->getThumbnails()); $photo->setId($photoDocument->getId()); $photo->setTags($this->buildTagData($photoDocument->getTags())); return $photo; }
/** * @param Photo $photo * @return Photo */ public function store(Photo $photo) { $document = new PhotoDocument(); $tags = []; foreach ($photo->getTags() as $tag) { $tags[] = new TagDocument($tag->getName()); } $document->setTags($tags); $document->setThumbnails($photo->getThumbnails()); $this->getDocumentManager()->persist($document); $this->getDocumentManager()->flush(); $photo->setId((string) $document->getId()); return $photo; }