2013-12-25 2 views
0

Я хочу сохранить данные из db в кеш и просматривать данные с разбивкой по страницам. Стараюсь этот код в модели:Как кэшировать данные с разбивкой на страницы?

public function fetchAll(Select $select = null) 
{  
    if (null === $select) 
     $select = new Select(); 

    $select->from ($this->table); 
    $resultSet = $this->tableGateway->selectWith ($select); 
    $resultSet->buffer(); 
    return $resultSet; 
} 

И использовать этот код для постраничной и передачи данных для просмотра:

use Zend\Db\Sql\Select; 
use Zend\Paginator\Paginator; 
use Zend\Paginator\Adapter\Iterator as paginatorIterator; 

public function indexAction() 
{ 
    $select = new Select(); 

    $page = $this->params()->fromRoute ('page') ? (int) $this->params()->fromRoute ('page') : 1; 
    $select->order ('my_table.'.$order_by . ' ' . $order_sort); 

    $items = $myModel->fetchAll ($select); 
    $paginator = new Paginator (new paginatorIterator ($items)); 
    $paginator->setCurrentPageNumber ($page); 

    $view = new ViewModel (array (
     'page' => $page, 
     'paginator' => $paginator, 
    )); 

    $view->setTemplate ('path/to/phtml'); 
    return $view; 

} 

Как это сделать?

ответ

0

ZF2 делает это настолько простым, насколько это возможно, предоставляя встроенные функции кеширования для разбивки на страницы. Вот документация: http://framework.zend.com/manual/2.2/en/modules/zend.paginator.advanced.html#caching-features

Я смог настроить его в одном из моих проектов примерно за 5 минут.

Смежные вопросы