June 2017
Intermediate to advanced
394 pages
8h 52m
English
In the case of this Repository, we'll only need the EntityManager to retrieve Domain objects directly from the database:
namespace Infrastructure\Persistence\Doctrine;use Doctrine\ORM\EntityManager;use Domain\Model\Post;use Domain\Model\PostId;use Domain\Model\PostRepository;class DoctrinePostRepository implements PostRepository{ protected $em; public function __construct(EntityManager $em) { $this->em = $em; } public function add(Post $aPost) { $this->em->persist($aPost); } public function remove(Post $aPost) { $this->em->remove($aPost); } public function postOfId(PostId $anId) { return $this->em->find('Domain\Model\Post', $anId); } public function latestPosts(\DateTimeImmutable $sinceADate) { return $this->em->createQueryBuilder() ...