Index: library/Zend/Paginator/SerializableLimitIterator.php =================================================================== --- library/Zend/Paginator/SerializableLimitIterator.php (revision 0) +++ library/Zend/Paginator/SerializableLimitIterator.php (revision 0) @@ -0,0 +1,83 @@ +_offset = $offset; + $this->_count = $count; + } + + /** + * @return string representation of the instance + */ + public function serialize() + { + return serialize(array( + 'it' => $this->getInnerIterator(), + 'offset' => $this->_offset, + 'count' => $this->_count, + 'pos' => $this->getPosition(), + )); + } + + /** + * @paran string $data representation of the instance + */ + public function unserialize($data) + { + $dataArr = unserialize($data); + $this->__construct($dataArr['it'], $dataArr['offset'], $dataArr['count']); + $this->seek($dataArr['pos']+$dataArr['offset']); + } + +} Index: library/Zend/Paginator/Adapter/Iterator.php =================================================================== --- library/Zend/Paginator/Adapter/Iterator.php (revision 18622) +++ library/Zend/Paginator/Adapter/Iterator.php (working copy) @@ -25,6 +25,11 @@ require_once 'Zend/Paginator/Adapter/Interface.php'; /** + * @see Zend_Paginator_SerializableLimitIterator + */ +require_once 'Zend/Paginator/SerializableLimitIterator.php'; + +/** * @category Zend * @package Zend_Paginator * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) @@ -80,7 +85,9 @@ return array(); } - return new LimitIterator($this->_iterator, $offset, $itemCountPerPage); + // @link http://bugs.php.net/bug.php?id=49906 + // return new LimitIterator($this->_iterator, $offset, $itemCountPerPage); + return new Zend_Paginator_SerializableLimitIterator($this->_iterator, $offset, $itemCountPerPage); } /**