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