/** * 設定ファイルの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; }
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); }
/** * レンダラオブジェクトを取得する * * @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; }