/*Use primer: <database name="name" class="AgaviMdb2Database"> <parameters> <parameter name="dsn">mysql://foo@localhost/bar</parameter> <parameter name="dataobject"> <parameters> <parameter name="debug">0</parameter> <parameter name="schema_location">/somepath/db</parameter> <parameter name="class_location">/somepath/db/</parameter> <parameter name="require_prefix">db/</parameter> <parameter name="class_prefix">DO_</parameter> <parameter name="quote_identifiers">true</parameter> </parameters> </parameter>Note that <dataobject> inner parameters correspond to DB_DataObject options. Thus, they are all optional and override the defaults. If <parameter name="dataobject"> is not present, DB_DataObject will not be loaded/initialized*/class AgaviMdb2Database extends AgaviDatabase{ var $db; public function connect() { if (! $dsn = $this->getParameter('dsn')) throw new AgaviDatabaseException("Please define a DSN in database configuration"); if (PEAR::isError($db =& MDB2::connect($dsn))) throw new AgaviDatabaseException("Failed to connect to the database: " . $db->getMessage()); if ($do = $this->getParameter('dataobject')) { require_once 'DB/DataObject.php'; $do['database'] = $dsn; $options = &PEAR::getStaticProperty('DB_DataObject', 'options'); foreach($do as $key=>$value) $options[$key] = $value; } $this->connection = $db; } public function shutdown() { if ($this->db) $db->disconnect(); }}