. */ /** * Doctrine_Hydrate_Array * defines an array fetching strategy for Doctrine_Hydrate * * @package Doctrine * @subpackage Hydrate * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.phpdoctrine.org * @since 1.0 * @version $Revision$ * @author Konsta Vesterinen */ class Doctrine_Hydrator_ArrayDriver { public function getElementCollection($component) { return array(); } public function getElement(array $data, $component) { return $data; } /* public function isIdentifiable(array $data, Doctrine_Table $table) { return ( ! empty($data)); } */ public function registerCollection($coll) { } public function initRelated(array &$data, $name) { if ( ! isset($data[$name])) { $data[$name] = array(); } return true; } public function getNullPointer() { return null; } public function getLastKey(&$data) { end($data); return key($data); } /** * sets the last element of given data array / collection * as previous element * * @param boolean|integer $index * @return void * @todo Detailed documentation */ public function setLastElement(&$prev, &$coll, $index, $dqlAlias, $oneToOne) { if ($coll === null) { unset($prev[$dqlAlias]); // Ticket #1228 return; } if ($index !== false) { // Link element at $index to previous element for the component // identified by the DQL alias $alias $prev[$dqlAlias] =& $coll[$index]; return; } if ($coll) { if ($oneToOne) { $prev[$dqlAlias] =& $coll; } else { end($coll); $prev[$dqlAlias] =& $coll[key($coll)]; } } } public function flush() { } }