* @copyright 2007 (C) by Wrzasq * @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU Lesser General Public License, Version 3 */ /** * Basic data access object routines. * *

* This class defines basic mechanisms for all classes that will represent database accessors. However no coding logic is defined here - only connection handling and PHP core-related stuff to enable variouse operations with objects. *

* *

* This class is mostly usefull when you create own extensions for POT code. *

* * @package POT * @version 0.1.0 */ abstract class OTS_Base_DAO implements IOTS_DAO { /** * Database connection. * * @var PDO */ protected $db; /** * Sets database connection handler. * * @version 0.1.0 */ public function __construct() { $this->db = POT::getInstance()->getDBHandle(); } /** * Magic PHP5 method. * *

* Allows object serialisation. *

* * @return array List of properties that should be saved. */ public function __sleep() { return array('data'); } /** * Magic PHP5 method. * *

* Allows object unserialisation. *

*/ public function __wakeup() { $this->db = POT::getInstance()->getDBHandle(); } /** * Creates clone of object. * *

* Copy of object needs to have different ID. *

*/ public function __clone() { unset($this->data['id']); } /** * Magic PHP5 method. * *

* Allows object importing from {@link http://www.php.net/manual/en/function.var-export.php var_export()}. *

* * @version 0.1.0 * @param array $properties List of object properties. */ public static function __set_state($properties) { // deletes database handle if( isset($properties['db']) ) { unset($properties['db']); } // initializes new object with current database connection $object = new self(); // loads properties foreach($properties as $name => $value) { $object->$name = $value; } return $object; } } /**#@-*/ ?>