Skip to content

Instantly share code, notes, and snippets.

@tankist
Created May 4, 2011 09:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tankist/954971 to your computer and use it in GitHub Desktop.
Save tankist/954971 to your computer and use it in GitHub Desktop.
Collection pagination example
class Model_Mapper_Db_User extends Skaya_Model_Mapper_Db_Abstract {
public function getUsersPaginator($order = null) {
$userTable = self::_getTableByName(self::TABLE_NAME);
$select = $userTable->select();
if ($order) {
$select->order($this->_mapOrderStatement($order));
}
$paginator = Skaya_Paginator::factory($select, 'DbSelect');
$paginator->addFilter(new Zend_Filter_Callback(array(
'callback' => array($this, 'getMappedArrayFromData')
)));
return $paginator;
}
}
class Service_User extends Skaya_Model_Service_Abstract {
public function getUsersPaginator($order = null) {
$paginator = $this->_mappers->user->getUsersPaginator($order);
$paginator->addFilter(new Skaya_Filter_Array_Collection('Model_Collection_Users'));
return $paginator;
}
}
class Model_Collection_Users extends Skaya_Model_Collection_Abstract {
protected $_itemType = 'Model_User';
}
$paginator = Skaya_Model_Service_Abstract::factory('User')->getUsersPaginator();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment