/**
* Creates the DB connection.
* @param string the module ID for TDataSourceConfig
* @return TDbConnection the created DB connection
* @throws TConfigurationException if module ID is invalid or empty
*/
protected function createDbConnection()
{
if ($this->_connID !== '') {
$config = $this->getApplication()->getModule($this->_connID);
if ($config instanceof TDataSourceConfig) {
return $config->getDbConnection();
} else {
throw new TConfigurationException('dbcache_connectionid_invalid', $this->_connID);
}
} else {
$db = new TDbConnection();
if ($this->_connectionString !== '') {
$db->setConnectionString($this->_connectionString);
if ($this->_username !== '') {
$db->setUsername($this->_username);
}
if ($this->_password !== '') {
$db->setPassword($this->_password);
}
} else {
// default to SQLite3 database
$dbFile = $this->getApplication()->getRuntimePath() . '/sqlite3.cache';
$db->setConnectionString('sqlite:' . $dbFile);
}
return $db;
}
}