Exemplos simples No primeiro exemplo nós não faremos nada espetacular, mas com certeza isso vai te dar uma boa idéia do que o Zend_Paginator é capaz de fazer. Vamos pensar em um array chamado $data, com números de 1 a 100 dentro dele, que queremos dividir em algumas páginas. Podemos usar o método estático factory() da classe Zend_Paginator para ter um objeto Zend_Paginator com nosso array dentro dele. Estamos quase lá! A variável $paginator agora contém uma referência para o objeto Paginator. Por padrão ele é configurado para mostrar 10 items por página. Para mostrar os items para a página atual, tudo que você tem a fazer é colocar o objeto Paginator dentro de um laço foreach. Por padrão a página ativa será a primeira caso nada esteja especificado. Nós vamos ver como você pode especificar uma página mais tarde. O trecho abaixo vai mostrar uma lista fora de ordem contendo números de 1 a 10, os quais são os números da primeira página. ]]> Agora vamos tentar trazer os items da segunda página. Você pode usar o método setCurrentPageNumber() para selecionar qual página você quer ver. setCurrentPageNumber(2); ?> ]]> Como esperado, esse trecho de código vai montar uma lista não ordenada com números do 11 ao 20. Esse simples exemplo demonstra um pouco do que pode ser feito com Zend_Paginator. Entretanto, uma aplicação de verdade raramente lê seus dados de um array estático, então a próxima sessão é responsável por mostrar como você pode usar o Zend_Paginator para paginar resultados de uma consulta vindo do banco de dados. Antes de prosseguir, tenha certeza de estar familiarizado com a maneira com que o Zend_Db_Select funciona! Em nossa base de exemplos nos vamos ter uma tabela com posts de um blog chamada 'posts'. A tabela 'posts' tem quatro colunas: id, titulo, texto, data_criacao. Vamos dar uma olhada em um exemplo simples. select()->from('posts')->order('data_criacao DESC'); // Cria um objeto Paginator usando o método factory do Zend_Paginator $paginator = Zend_Paginator::factory($select); // Seleciona a segunda página $paginator->setCurrentPageNumber(2); ?> ]]> Como você pode ver, esse exemplo não é tão diferente do anterior. A única diferença é que você passa um objeto Zend_Db_Select para o método factory() da classe paginator ao invés de um array. Para mais detalhes de como o adaptador de banco de dados executa a sua consulta de maneira eficiente, veja o capítulo Zend_Paginator no manual de referência sobre os adaptadores DbSelect e DbTableSelect.