Example #1
0
 /**
  *  設定ファイルのDSN定義から使用するデータを再構築する(スレーブアクセス分岐等)
  *
  *  DSNの定義方法(デフォルト:設定ファイル)を変えたい場合はここをオーバーライドする
  *
  *  @access protected
  *  @return array   DSN定義(array('DBキー1' => 'dsn1', 'DBキー2' => 'dsn2', ...))
  */
 public function _prepareDSN()
 {
     $r = array();
     foreach ($this->db as $key => $value) {
         $config_key = "dsn";
         if ($key != "") {
             $config_key .= "_{$key}";
         }
         $dsn = $this->config->get($config_key);
         if (is_array($dsn)) {
             // 種別1つにつき複数DSNが定義されている場合はアクセス分岐
             $dsn = $this->_selectDSN($key, $dsn);
         }
         $r[$key] = $dsn;
     }
     return $r;
 }
Example #2
0
 function get($key = null)
 {
     $env = $this->environment;
     if (is_null($key)) {
         $r = $this->config;
         if (isset($this->config['environment'][$env])) {
             $r = $this->array_merge_recursive_overwrite($r, $this->config['environment'][$env]);
         }
         return $r;
     }
     if (isset($this->config['environment'][$env][$key])) {
         if (is_array($this->config[$key])) {
             return $this->array_merge_recursive_overwrite($this->config[$key], $this->config['environment'][$env][$key]);
         }
         return $this->config['environment'][$env][$key];
     }
     return parent::get($key);
 }
Example #3
0
 /**
  *  レンダラオブジェクトを取得する
  *
  *  @access protected
  *  @return object  Ethna_Renderer  レンダラオブジェクト
  */
 public function _getRenderer()
 {
     $c = $this->backend->getController();
     $renderer = $c->getRenderer();
     $form_array = $this->af->getArray();
     $app_array = $this->af->getAppArray();
     $app_ne_array = $this->af->getAppNEArray();
     $renderer->setPropByRef('form', $form_array);
     $renderer->setPropByRef('app', $app_array);
     $renderer->setPropByRef('app_ne', $app_ne_array);
     $message_list = Ethna_Util::escapeHtml($this->ae->getMessageList());
     $renderer->setPropByRef('errors', $message_list);
     if (isset($_SESSION)) {
         $tmp_session = Ethna_Util::escapeHtml($_SESSION);
         $renderer->setPropByRef('session', $tmp_session);
     }
     $renderer->setProp('script', htmlspecialchars(basename($_SERVER['SCRIPT_NAME']), ENT_QUOTES, $this->ctl->getClientEncoding()));
     $renderer->setProp('request_uri', isset($_SERVER['REQUEST_URI']) ? htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, $this->ctl->getClientEncoding()) : '');
     $renderer->setProp('config', $this->config->get());
     return $renderer;
 }