Doctrine 1.2.4
Doctrine_Pager Class Reference

Public Member Functions

 __construct ($query, $page, $maxPerPage=0)
 
 execute ($params=array(), $hydrationMode=null)
 
 getCountQuery ()
 
 getCountQueryParams ($defaultParams=array())
 
 getExecuted ()
 
 getFirstIndice ()
 
 getFirstPage ()
 
 getLastIndice ()
 
 getLastPage ()
 
 getMaxPerPage ()
 
 getNextPage ()
 
 getNumResults ()
 
 getPage ()
 
 getPreviousPage ()
 
 getQuery ()
 
 getRange ($rangeStyle, $options=array())
 
 getResultsInPage ()
 
 haveToPaginate ()
 
 setCountQuery ($query, $params=null)
 
 setCountQueryParams ($params=array(), $append=false)
 
 setMaxPerPage ($max)
 
 setPage ($page)
 

Protected Member Functions

 _adjustOffset ()
 
 _initialize ($params=array())
 
 _setExecuted ($executed)
 
 _setLastPage ($page)
 
 _setNumResults ($nb)
 
 _setPage ($page)
 
 _setQuery ($query)
 

Detailed Description

Definition at line 33 of file Pager.php.

Constructor & Destructor Documentation

Doctrine_Pager::__construct (   $query,
  $page,
  $maxPerPage = 0 
)

__construct

Parameters
mixed$queryAccepts either a Doctrine_Query object or a string (which does the Doctrine_Query class creation).
int$pageCurrent page
int$maxPerPageMaximum itens per page
Returns
void

Definition at line 86 of file Pager.php.

{
$this->_setExecuted(false);
$this->_setQuery($query);
$this->_setPage($page);
$this->setMaxPerPage($maxPerPage);
}

Member Function Documentation

Doctrine_Pager::_adjustOffset ( )
protected

_adjustOffset

Adjusts last page of Doctrine_Pager, offset and limit of Doctrine_Query associated

Returns
void

Definition at line 123 of file Pager.php.

{
// Define new total of pages
$this->_setLastPage(
max(1, ceil($this->getNumResults() / $this->getMaxPerPage()))
);
$offset = ($this->getPage() - 1) * $this->getMaxPerPage();
// Assign new offset and limit to Doctrine_Query object
$p = $this->getQuery();
$p->offset($offset);
$p->limit($this->getMaxPerPage());
}
Doctrine_Pager::_initialize (   $params = array())
protected

_initialize

Initialize Pager object calculating number of results

Parameters
$paramsOptional parameters to Doctrine_Query::execute
Returns
void

Definition at line 104 of file Pager.php.

{
// retrieve the number of items found
$countQuery = $this->getCountQuery();
$count = $countQuery->count($this->getCountQueryParams($params));
$this->_setNumResults($count);
$this->_setExecuted(true); // _adjustOffset relies of _executed equals true = getNumResults()
$this->_adjustOffset();
}
Doctrine_Pager::_setExecuted (   $executed)
protected

_setExecuted

Defines if Pager was already executed

Parameters
$executedPager was executed
Returns
void

Definition at line 157 of file Pager.php.

{
$this->_executed = $executed;
}
Doctrine_Pager::_setLastPage (   $page)
protected

_setLastPage

Defines the last page (total of pages)

Parameters
$pagelast page (total of pages)
Returns
void

Definition at line 248 of file Pager.php.

{
$this->_lastPage = $page;
if ($this->getPage() > $page) {
$this->_setPage($page);
}
}
Doctrine_Pager::_setNumResults (   $nb)
protected

_setNumResults

Defines the number of total results on initial query

Parameters
$nbNumber of results found on initial query fetch
Returns
void

Definition at line 205 of file Pager.php.

{
$this->_numResults = $nb;
}
Doctrine_Pager::_setPage (   $page)
protected

_setPage

Defines the current page

Parameters
$pagecurrent page
Returns
void

Definition at line 369 of file Pager.php.

{
$page = intval($page);
$this->_page = ($page <= 0) ? 1 : $page;
}
Doctrine_Pager::_setQuery (   $query)
protected

_setQuery

Defines the collector query to be used by pager

Parameters
Doctrine_QueryAccepts either a Doctrine_Query object or a string (which does the Doctrine_Query class creation).
Returns
void

Definition at line 449 of file Pager.php.

{
if (is_string($query)) {
->parseDqlQuery($query);
}
$this->_query = $query;
}
Doctrine_Pager::execute (   $params = array(),
  $hydrationMode = null 
)

execute

Executes the query, populates the collection and then return it

Parameters
$paramsOptional parameters to Doctrine_Query::execute
$hydrationModeHydration Mode of Doctrine_Query::execute returned ResultSet.
Returns
Doctrine_Collection The root collection

Definition at line 542 of file Pager.php.

{
if ( !$this->getExecuted()) {
$this->_initialize($params);
}
return $this->getQuery()->execute($params, $hydrationMode);
}
Doctrine_Pager::getCountQuery ( )

getCountQuery

Returns the Doctrine_Query object that is used to make the count results to pager

Returns
Doctrine_Query Doctrine_Query object related to the pager

Definition at line 466 of file Pager.php.

{
return ($this->_countQuery !== null) ? $this->_countQuery : $this->_query;
}
Doctrine_Pager::getCountQueryParams (   $defaultParams = array())

getCountQueryParams

Returns the params to be used by counter Doctrine_Query

Returns
array Doctrine_Query counter params

Definition at line 503 of file Pager.php.

{
return ($this->_countQueryParams !== null) ? $this->_countQueryParams : $defaultParams;
}
Doctrine_Pager::getExecuted ( )

getExecuted

Returns the check if Pager was already executed at least once

Returns
boolen Pager was executed

Definition at line 144 of file Pager.php.

{
return $this->_executed;
}
Doctrine_Pager::getFirstIndice ( )

getFirstIndice

Return the first indice number for the current page

Returns
int First indice number

Definition at line 312 of file Pager.php.

{
return ($this->getPage() - 1) * $this->getMaxPerPage() + 1;
}
Doctrine_Pager::getFirstPage ( )

getFirstPage

Returns the first page

Returns
int first page

Definition at line 217 of file Pager.php.

{
return 1;
}
Doctrine_Pager::getLastIndice ( )

getLastIndice

Return the last indice number for the current page

Returns
int Last indice number

Definition at line 324 of file Pager.php.

{
return min($this->getNumResults(), ($this->getPage() * $this->getMaxPerPage()));
}
Doctrine_Pager::getLastPage ( )

getLastPage

Returns the last page (total of pages)

Returns
int last page (total of pages)

Definition at line 229 of file Pager.php.

{
if ($this->getExecuted()) {
return $this->_lastPage;
}
'Cannot retrieve the last page number of a not yet executed Pager query'
);
}
Doctrine_Pager::getMaxPerPage ( )

getLastPage

Returns the maximum number of itens per page

Returns
int maximum number of itens per page

Definition at line 382 of file Pager.php.

{
return $this->_maxPerPage;
}
Doctrine_Pager::getNextPage ( )

getNextPage

Returns the next page

Returns
int next page

Definition at line 276 of file Pager.php.

{
if ($this->getExecuted()) {
return min($this->getPage() + 1, $this->getLastPage());
}
'Cannot retrieve the last page number of a not yet executed Pager query'
);
}
Doctrine_Pager::getNumResults ( )

getNumResults

Returns the number of results found

Returns
int the number of results found

Definition at line 186 of file Pager.php.

{
if ($this->getExecuted()) {
return $this->_numResults;
}
'Cannot retrieve the number of results of a not yet executed Pager query'
);
}
Doctrine_Pager::getPage ( )

getLastPage

Returns the current page

Returns
int current page

Definition at line 264 of file Pager.php.

{
return $this->_page;
}
Doctrine_Pager::getPreviousPage ( )

getPreviousPage

Returns the previous page

Returns
int previous page

Definition at line 294 of file Pager.php.

{
if ($this->getExecuted()) {
return max($this->getPage() - 1, $this->getFirstPage());
}
'Cannot retrieve the previous page number of a not yet executed Pager query'
);
}
Doctrine_Pager::getQuery ( )

getQuery

Returns the Doctrine_Query collector object related to the pager

Returns
Doctrine_Query Doctrine_Query object related to the pager

Definition at line 435 of file Pager.php.

{
return $this->_query;
}
Doctrine_Pager::getRange (   $rangeStyle,
  $options = array() 
)

getRange

Builds and return a Doctrine_Pager_Range_* based on arguments

Parameters
string$rangeStylePager Range style
array$optionsCustom subclass implementation options. Default is a blank array
Returns
Doctrine_Pager_Range Pager Range

Definition at line 172 of file Pager.php.

{
$class = 'Doctrine_Pager_Range_' . ucfirst($rangeStyle);
return new $class($options, $this);
}
Doctrine_Pager::getResultsInPage ( )

getResultsInPage

Returns the number of itens in current page

Returns
int Number of itens in current page

Definition at line 415 of file Pager.php.

{
$page = $this->getPage();
if ($page != $this->getLastPage()) {
return $this->getMaxPerPage();
}
$offset = ($this->getPage() - 1) * $this->getMaxPerPage();
return abs($this->getNumResults() - $offset);
}
Doctrine_Pager::haveToPaginate ( )

haveToPaginate

Return true if it's necessary to paginate or false if not

Returns
bool true if it is necessary to paginate, false otherwise

Definition at line 336 of file Pager.php.

{
if ($this->getExecuted()) {
return $this->getNumResults() > $this->getMaxPerPage();
}
'Cannot know if it is necessary to paginate a not yet executed Pager query'
);
}
Doctrine_Pager::setCountQuery (   $query,
  $params = null 
)

setCountQuery

Defines the counter query to be used by pager

Parameters
Doctrine_QueryAccepts either a Doctrine_Query object or a string (which does the Doctrine_Query class creation).
arrayOptional params to be used by counter Doctrine_Query. If not defined, the params passed to execute method will be used.
Returns
void

Definition at line 482 of file Pager.php.

{
if (is_string($query)) {
->parseDqlQuery($query);
}
$this->_countQuery = $query;
$this->setCountQueryParams($params);
$this->_setExecuted(false);
}
Doctrine_Pager::setCountQueryParams (   $params = array(),
  $append = false 
)

setCountQueryParams

Defines the params to be used by counter Doctrine_Query

Parameters
arrayOptional params to be used by counter Doctrine_Query. If not defined, the params passed to execute method will be used.
booleanOptional argument that append the query param instead of overriding the existent ones.
Returns
void

Definition at line 518 of file Pager.php.

{
if ($append && is_array($this->_countQueryParams)) {
$this->_countQueryParams = array_merge($this->_countQueryParams, $params);
} else {
if ($params !== null && !is_array($params)) {
$params = array($params);
}
$this->_countQueryParams = $params;
}
$this->_setExecuted(false);
}
Doctrine_Pager::setMaxPerPage (   $max)

setMaxPerPage

Defines the maximum number of itens per page and automatically adjust offset and limits

Parameters
$maxmaximum number of itens per page
Returns
void

Definition at line 395 of file Pager.php.

{
if ($max > 0) {
$this->_maxPerPage = $max;
} else if ($max == 0) {
$this->_maxPerPage = 25;
} else {
$this->_maxPerPage = abs($max);
}
$this->_setExecuted(false);
}
Doctrine_Pager::setPage (   $page)

setPage

Defines the current page and automatically adjust offset and limits

Parameters
$pagecurrent page
Returns
void

Definition at line 355 of file Pager.php.

{
$this->_setPage($page);
$this->_setExecuted(false);
}

The documentation for this class was generated from the following file: