<?php class Db extends Singleton { private $_driver; public function init() { $params = Config::get('app:DB'); $driver = $params['engine']; unset($params['engine']); switch ($driver) { case 'pgsql' : default : $this->_driver = new Pgsql(); break; } call_user_func_array(array($this->_driver, 'connect'), $params); } public function q($q, $params = array()) { if (! $this->_driver) { $this->init(); } return $this->_driver->q($q); } public function getRows($result, $key = false) { if (! $this->_driver) { $this->init(); } return $this->_driver->getRows($result, $key); } public function getRow($result) { if (! $this->_driver) { $this->init(); } return $this->_driver->getRow($result); } } ?>