Doctrine 1.2.4
Doctrine_Hook Class Reference

Public Member Functions

 __construct ($query)
 
 getQuery ()
 
 hookLimit ($limit)
 
 hookOffset ($offset)
 
 hookOrderby ($params)
 
 hookWhere ($params)
 
 setFieldParser ($field, $parser)
 
 setTypeParser ($type, $parser)
 

Detailed Description

Definition at line 33 of file Hook.php.

Constructor & Destructor Documentation

Doctrine_Hook::__construct (   $query)
Parameters
Doctrine_Query$querythe base query

Definition at line 79 of file Hook.php.

{
if (is_string($query)) {
$this->query = Doctrine_Query::create();
$this->query->parseDqlQuery($query);
} elseif ($query instanceof Doctrine_Query) {
$this->query = $query;
} else {
throw new Doctrine_Exception('Constructor argument should be either Doctrine_Query object or valid DQL query');
}
$this->query->getSqlQuery();
}

Member Function Documentation

Doctrine_Hook::getQuery ( )

getQuery

Returns
Doctrine_Query returns the query object associated with this hook

Definition at line 98 of file Hook.php.

{
return $this->query;
}
Doctrine_Hook::hookLimit (   $limit)

set the hook limit

Parameters
integer$limit
Returns
void

Definition at line 216 of file Hook.php.

{
$this->query->limit((int) $limit);
}
Doctrine_Hook::hookOffset (   $offset)

set the hook offset

Parameters
integer$offset

Definition at line 226 of file Hook.php.

{
$this->query->offset((int) $offset);
}
Doctrine_Hook::hookOrderby (   $params)

hookOrderBy builds DQL query orderby part from given parameter array

Parameters
array$paramsan array containing all fields which the built query should be ordered by
Returns
boolean whether or not the hooking was successful

Definition at line 180 of file Hook.php.

{
if ( ! is_array($params)) {
return false;
}
foreach ($params as $name) {
$e = explode(' ', $name);
$order = 'ASC';
if (count($e) > 1) {
$order = ($e[1] == 'DESC') ? 'DESC' : 'ASC';
}
$e = explode('.', $e[0]);
if (count($e) == 2) {
list($alias, $column) = $e;
$map = $this->query->getQueryComponent($alias);
$table = $map['table'];
if ($def = $table->getDefinitionOf($column)) {
$this->query->addOrderBy($alias . '.' . $column . ' ' . $order);
}
}
}
return true;
}
Doctrine_Hook::hookWhere (   $params)

hookWhere builds DQL query where part from given parameter array

Parameters
array$paramsan associative array containing field names and their values
Returns
boolean whether or not the hooking was

Definition at line 133 of file Hook.php.

{
if ( ! is_array($params)) {
return false;
}
foreach ($params as $name => $value) {
if ($value === '' || $value === '-') {
continue;
}
$e = explode('.', $name);
if (count($e) == 2) {
list($alias, $column) = $e;
$map = $this->query->getQueryComponent($alias);
$table = $map['table'];
if ( ! $table) {
throw new Doctrine_Exception('Unknown alias ' . $alias);
}
if ($def = $table->getDefinitionOf($column)) {
$def[0] = gettype($value);
if (isset($this->typeParsers[$def[0]])) {
$name = $this->typeParsers[$def[0]];
$parser = new $name;
}
$parser->parse($alias, $column, $value);
$this->query->addWhere($parser->getCondition(), $parser->getParams());
}
}
}
return true;
}
Doctrine_Hook::setFieldParser (   $field,
  $parser 
)

setFieldParser

Parameters
string$fieldfield name
string | object$parserparser name or custom parser object

Definition at line 120 of file Hook.php.

{
$this->fieldParsers[$field] = $parser;
}
Doctrine_Hook::setTypeParser (   $type,
  $parser 
)

setTypeParser

Parameters
string$typetype name
string | object$parserparser name or custom parser object

Definition at line 109 of file Hook.php.

{
$this->typeParsers[$type] = $parser;
}

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