/** * Returns the items for a given page. * * @return ArrayIterator */ public function getItemsByPage($pageNumber) { if (isset($this->_pageItems[$pageNumber])) { return $this->_pageItems[$pageNumber]; } $offset = ($pageNumber - 1) * $this->_itemCountPerPage; $items = $this->_adapter->getItems($offset, $this->_itemCountPerPage); if (!$items instanceof Iterator) { $items = new ArrayIterator($items); } $this->_pageItems[$pageNumber] = $items; return $items; }
/** * Returns the items for a given page. * * @return Traversable */ public function getItemsByPage($pageNumber) { $pageNumber = $this->normalizePageNumber($pageNumber); if ($this->_cacheEnabled()) { $data = self::$_cache->load($this->_getCacheId($pageNumber)); if ($data !== false) { return $data; } } $offset = ($pageNumber - 1) * $this->getItemCountPerPage(); $items = $this->_adapter->getItems($offset, $this->getItemCountPerPage()); $filter = $this->getFilter(); if ($filter !== null) { $items = $filter->filter($items); } if (!$items instanceof Traversable) { $items = new ArrayIterator($items); } if ($this->_cacheEnabled()) { self::$_cache->save($items, $this->_getCacheId($pageNumber), array($this->_getCacheInternalId())); } return $items; }