本文整理汇总了PHP中Ethna_Controller::getDSN方法的典型用法代码示例。如果您正苦于以下问题:PHP Ethna_Controller::getDSN方法的具体用法?PHP Ethna_Controller::getDSN怎么用?PHP Ethna_Controller::getDSN使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ethna_Controller
的用法示例。
在下文中一共展示了Ethna_Controller::getDSN方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getDB
/**
* DBオブジェクトを返す
*
* @access public
* @param string $db_key DBキー
* @return mixed Ethna_DB:DBオブジェクト null:DSN設定なし Ethna_Error:エラー
* @todo この中でnewしないでclass factoryを利用する
*/
public function getDB($db_key = "")
{
$null = null;
$db_varname = $this->_getDBVarname($db_key);
if (Ethna::isError($db_varname)) {
return $db_varname;
}
if (isset($this->db_list[$db_varname]) && $this->db_list[$db_varname] != null) {
return $this->db_list[$db_varname];
}
$dsn = $this->controller->getDSN($db_key);
if ($dsn == "") {
// DB接続不要
return $null;
}
$dsn_persistent = $this->controller->getDSN_persistent($db_key);
$class_factory = $this->controller->getClassFactory();
$db_class_name = $class_factory->getObjectName('db');
// BC: Ethna_DB -> Ethna_DB_PEAR
if ($db_class_name == 'Ethna_DB') {
$db_class_name = 'Ethna_DB_PEAR';
}
if (class_exists($db_class_name) === false) {
$class_factory->_include($db_class_name);
}
$this->db_list[$db_varname] = new $db_class_name($this->controller, $dsn, $dsn_persistent);
$r = $this->db_list[$db_varname]->connect();
if (Ethna::isError($r)) {
$this->db_list[$db_varname] = null;
return $r;
}
register_shutdown_function(array($this, 'shutdownDB'));
return $this->db_list[$db_varname];
}