Replace dependency to Zend\Paginator to dependency to Pagerfanta (optional)

This commit is contained in:
ornicar 2011-07-05 10:42:14 -07:00
parent 47caa92cb4
commit d10fff12d4
7 changed files with 20 additions and 20 deletions

View file

@ -2,7 +2,7 @@
namespace FOQ\ElasticaBundle\Finder; namespace FOQ\ElasticaBundle\Finder;
use Zend\Paginator\Paginator; use Pagerfanta\Pagerfanta;
interface PaginatedFinderInterface interface PaginatedFinderInterface
{ {
@ -10,7 +10,7 @@ interface PaginatedFinderInterface
* Searches for query results and returns them wrapped in a paginator * Searches for query results and returns them wrapped in a paginator
* *
* @param mixed $query Can be a string, an array or an Elastica_Query object * @param mixed $query Can be a string, an array or an Elastica_Query object
* @return Paginator paginated results * @return Pagerfanta paginated results
*/ */
function findPaginated($query); function findPaginated($query);
} }

View file

@ -3,7 +3,7 @@
namespace FOQ\ElasticaBundle\Finder; namespace FOQ\ElasticaBundle\Finder;
use FOQ\ElasticaBundle\Paginator\RawPaginatorAdapter; use FOQ\ElasticaBundle\Paginator\RawPaginatorAdapter;
use Zend\Paginator\Paginator; use Pagerfanta\Pagerfanta;
use Elastica_Searchable; use Elastica_Searchable;
use Elastica_Query; use Elastica_Query;

View file

@ -6,7 +6,7 @@ use FOQ\ElasticaBundle\Finder\FinderInterface;
use FOQ\ElasticaBundle\Finder\PaginatedFinderInterface; use FOQ\ElasticaBundle\Finder\PaginatedFinderInterface;
use FOQ\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface; use FOQ\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface;
use FOQ\ElasticaBundle\Paginator\TransformedPaginatorAdapter; use FOQ\ElasticaBundle\Paginator\TransformedPaginatorAdapter;
use Zend\Paginator\Paginator; use Pagerfanta\Pagerfanta;
use Elastica_Searchable; use Elastica_Searchable;
use Elastica_Query; use Elastica_Query;
@ -45,7 +45,7 @@ class TransformedFinder implements FinderInterface, PaginatedFinderInterface
/** /**
* Gets a paginator wrapping the result of a search * Gets a paginator wrapping the result of a search
* *
* @return Paginator * @return Pagerfanta
**/ **/
public function findPaginated($query) public function findPaginated($query)
{ {
@ -53,7 +53,7 @@ class TransformedFinder implements FinderInterface, PaginatedFinderInterface
$results = $this->searchable->search($queryObject)->getResults(); $results = $this->searchable->search($queryObject)->getResults();
$paginatorAdapter = $this->createPaginatorAdapter($queryObject); $paginatorAdapter = $this->createPaginatorAdapter($queryObject);
return new Paginator($paginatorAdapter); return new Pagerfanta($paginatorAdapter);
} }
/** /**

View file

@ -2,16 +2,16 @@
namespace FOQ\ElasticaBundle\Paginator; namespace FOQ\ElasticaBundle\Paginator;
use Zend\Paginator\Adapter; use Pagerfanta\Adapter\AdapterInterface;
use Elastica_Searchable; use Elastica_Searchable;
use Elastica_Query; use Elastica_Query;
/** /**
* Implements the Zend\Paginator\Adapter Interface for use with Zend\Paginator\Paginator * Implements the Pagerfanta\Adapter\AdapterInterface for use with Pagerfanta\Pagerfanta
* *
* Allows pagination of Elastica_Query. Does not map results * Allows pagination of Elastica_Query. Does not map results
*/ */
abstract class AbstractPaginatorAdapter implements Adapter abstract class AbstractPaginatorAdapter implements AdapterInterface
{ {
/** /**
* @var Elastica_SearchableInterface the object to search in * @var Elastica_SearchableInterface the object to search in
@ -45,9 +45,9 @@ abstract class AbstractPaginatorAdapter implements Adapter
} }
/** /**
* @see Zend\Paginator\Adapter::count * @see Pagerfanta\Adapter\AdapterInterface::getNbResults
*/ */
public function count() public function getNbResults()
{ {
return $this->searchable->count($this->query); return $this->searchable->count($this->query);
} }

View file

@ -3,18 +3,18 @@
namespace FOQ\ElasticaBundle\Paginator; namespace FOQ\ElasticaBundle\Paginator;
/** /**
* Implements the Zend\Paginator\Adapter Interface for use with Zend\Paginator\Paginator * Implements the Pagerfanta\Adapter\AdapterInterface for use with Zend\Paginator\Paginator
* *
* Allows pagination of Elastica_Query. Does not map results * Allows pagination of Elastica_Query. Does not map results
*/ */
class RawPaginatorAdapter extends AbstractPaginatorAdapter class RawPaginatorAdapter extends AbstractPaginatorAdapter
{ {
/** /**
* @see Zend\Paginator\Adapter::getItems * @see Pagerfanta\Adapter\AdapterInterface::getSlice
*/ */
public function getItems($offset, $itemCountPerPage) public function getSlice($offset, $length)
{ {
$results = $this->getElasticaResults($offset, $itemCountPerPage); $results = $this->getElasticaResults($offset, $length);
return array_map(function($result) { return $result->getSource(); }, $results); return array_map(function($result) { return $result->getSource(); }, $results);
} }

View file

@ -7,7 +7,7 @@ use Elastica_Searchable;
use Elastica_Query; use Elastica_Query;
/** /**
* Implements the Zend\Paginator\Adapter Interface for use with Zend\Paginator\Paginator * Implements the Pagerfanta\Adapter\AdapterInterface Interface for use with Zend\Paginator\Paginator
* *
* Allows pagination of Elastica_Query * Allows pagination of Elastica_Query
*/ */
@ -28,11 +28,11 @@ class TransformedPaginatorAdapter extends AbstractPaginatorAdapter
} }
/** /**
* @see Zend\Paginator\Adapter::getItems * @see Pagerfanta\Adapter\AdapterInterface::getSlice
*/ */
public function getItems($offset, $itemCountPerPage) public function getSlice($offset, $length)
{ {
$results = $this->getElasticaResults($offset, $itemCountPerPage); $results = $this->getElasticaResults($offset, $length);
return $this->transformer->transform($results); return $this->transformer->transform($results);
} }

View file

@ -260,7 +260,7 @@ You can now use the `foq_elastica.finder.website.user` service:
You can even get paginated results! You can even get paginated results!
/** var Zend\Paginator\Paginator */ /** var Pagerfanta\Pagerfanta */
$userPaginator = $finder->findPaginated('bob'); $userPaginator = $finder->findPaginated('bob');
### Realtime, selective index update ### Realtime, selective index update