Ejemplo n.º 1
0
 /**
  *  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];
 }
Ejemplo n.º 2
0
 public function setup()
 {
     parent::setup();
     $this->controller = $this->prophesize("Ethna_Controller");
     $this->config = $this->prophesize("Ethna_Config");
     $this->i18n = $this->prophesize("Ethna_I18N");
     $this->action_error = $this->prophesize("Ethna_ActionError");
     $this->action_form = $this->prophesize("Ethna_ActionForm");
     $this->action_class = $this->prophesize("Ethna_ActionClass");
     $this->session = $this->prophesize("Ethna_Session");
     $this->plugin = $this->prophesize("Ethna_Plugin");
     $this->logger = $this->prophesize("Ethna_Logger");
     $this->class_factory = $this->prophesize("Ethna_ClassFactory");
     $this->controller->getClassFactory()->willReturn($this->class_factory);
     $this->controller->getConfig()->willReturn($this->config);
     $this->controller->getI18N()->willReturn($this->i18n);
     $this->controller->getActionError()->willReturn($this->action_error);
     $this->controller->getActionForm()->willReturn($this->action_form);
     $this->controller->getSession()->willReturn($this->session);
     $this->controller->getPlugin()->willReturn($this->plugin);
     $this->controller->getLogger()->willReturn($this->logger);
 }
Ejemplo n.º 3
0
 function setUp()
 {
     $ctl = new Ethna_Controller();
     $this->cf = $ctl->getClassFactory();
 }