diff --git a/Mapper/DoctrineMapper.php b/Mapper/DoctrineMapper.php new file mode 100644 index 0000000..a7a1242 --- /dev/null +++ b/Mapper/DoctrineMapper.php @@ -0,0 +1,60 @@ +objectRepository = $objectRepository; + $this->identifier = $identifier; + } + + /** + * Transforms an array of elastica objects into an array of + * model objects fetched from the doctrine repository + * + * @return array + **/ + public function fromElasticaObjects(array $elasticaObjects) + { + $ids = array_map(function($elasticaObject) { + return $elasticaObject->getId(); + }, $elasticaObjects); + + return $this->objectRepository + ->createQueryBuilder() + ->field($this->identifier)->in($ids) + ->getQuery() + ->execute(); + } + +} diff --git a/MapperInterface.php b/MapperInterface.php new file mode 100644 index 0000000..c0a7d08 --- /dev/null +++ b/MapperInterface.php @@ -0,0 +1,17 @@ +