O componente Zend_Paginator
simplifica bastante a paginação de dados e fornece Adapters para suportar várias fontes de dados (objetos Zend_Db
, arrays
, etc). O FernandoMantoan_Paginator_Adapter_Doctrine foi criado para ser um Zend_Paginator_Adapter
que fornece paginação para os objetos QueryBuilder
do Doctrine 2.
Configuração
O primeiro passo é baixar o componente para o seu projeto:
git clone https://github.com/fernandomantoan/zf1-doctrine2-paginator-adapter
Basta copiar a pasta library/FernandoMantoan para a pasta library do seu projeto Zend Framework, e adicionar no application/configs/application.ini
as seguintes linhas:
autoloaderNamespaces[] = FernandoMantoan
Uso
O Adapater
necessita de um objeto QueryBuilder
, para construir as consultas para contagem das páginas e paginação. O exemplo a seguir cria um QueryBuilder
:
$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder->select('c')
->from('Entity\Contacts')
->orderBy('c.birthdate');
Tendo o objeto QueryBuilder
criado, basta instanciar o Adapter
e o Zend_Paginator
:
$adapter = new FernandoMantoan_Paginator_Adapter_Doctrine($queryBuilder);
$paginator = new Zend_Paginator($adapter);
$paginator->setCurrentPageNumber($currentPage)
->setItemCountPerPage(10);
Próximos Passos
O componente é bem simples e direto, foi criado para a utilização em um projeto e para suprir as necessidades do mesmo. Quem tiver interesse em contribuir, sugerir funcionalidades ou reportar bugs, basta acessar no Github, toda contribuição é bem-vinda.