2011-05-09 18:48:25 +02:00
|
|
|
<?php
|
|
|
|
|
2011-05-10 00:31:20 +02:00
|
|
|
namespace FOQ\ElasticaBundle\Doctrine\MongoDB;
|
2011-05-09 18:48:25 +02:00
|
|
|
|
2011-05-10 00:31:20 +02:00
|
|
|
use FOQ\ElasticaBundle\Doctrine\AbstractProvider;
|
|
|
|
|
|
|
|
class Provider extends AbstractProvider
|
2011-05-09 18:48:25 +02:00
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Counts the objects of a query builder
|
|
|
|
*
|
2011-05-09 19:56:27 +02:00
|
|
|
* @param queryBuilder
|
2011-05-09 18:48:25 +02:00
|
|
|
* @return int
|
|
|
|
**/
|
|
|
|
protected function countObjects($queryBuilder)
|
|
|
|
{
|
|
|
|
return $queryBuilder->getQuery()->count();
|
|
|
|
}
|
2011-05-09 19:56:27 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Fetches a slice of objects
|
|
|
|
*
|
|
|
|
* @param queryBuilder
|
|
|
|
* @param int limit
|
|
|
|
* @param int offset
|
|
|
|
* @return array of objects
|
|
|
|
**/
|
|
|
|
protected function fetchSlice($queryBuilder, $limit, $offset)
|
|
|
|
{
|
|
|
|
return $queryBuilder->limit($limit)->skip($offset)->getQuery()->execute()->toArray();
|
|
|
|
}
|
2011-05-09 23:17:38 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Creates the query builder used to fetch the documents to index
|
|
|
|
*
|
|
|
|
* @return query builder
|
|
|
|
**/
|
|
|
|
protected function createQueryBuilder()
|
|
|
|
{
|
2011-12-13 11:22:24 +01:00
|
|
|
return $this->registry
|
|
|
|
->getManagerForClass($this->objectClass)
|
|
|
|
->getRepository($this->objectClass)
|
|
|
|
->{$this->options['query_builder_method']}();
|
2011-05-09 23:17:38 +02:00
|
|
|
}
|
2011-05-09 18:48:25 +02:00
|
|
|
}
|