true, 'identifier' => 'id' ); /** * Instanciates a new Mapper * * @param ObjectManager objectManager * @param string $objectClass * @param array $options */ public function __construct(ObjectManager $objectManager, $objectClass, array $options = array()) { $this->objectManager = $objectManager; $this->objectClass = $objectClass; $this->options = array_merge($this->options, $options); } /** * 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->objectManager ->createQueryBuilder($this->objectClass) ->field($this->options['identifier'])->in($ids) ->hydrate($this->options['hydrate']) ->getQuery() ->execute() ->toArray(); } }