/** * test_GetParseStatus_AfterParsed() * * パース後のGetParseStatus()の挙動をテストする */ public function test_GetParseStatus_AfterParsed() { $instance = new Conf(); $instance->parse(RISOLUTO_CONF . 'risoluto.ini'); $this->assertTrue($instance->getParseStatus()); unset($instance); }
/** * start($path = '', $name = '') * * セッションを開始する * もし、すでにセッションが存在している場合は * そのセッションIDを用いてセッションをスタートする * セッションが存在しない場合は新規にセッションを生成し、スタートする * * @access public * * @param string $path セッションファイル保存ディレクトリ * @param string $name セッション名 * * @return boolean セッション開始結果(true:正常終了/false:異常終了) */ public function start($path = '', $name = '') { // セッション保存ディレクトリが指定されていたらその値を採用 if (!empty($path)) { $this->sesspath = $path; } // セッション名が指定されていたらその値を採用 if (!empty($name)) { $this->sessname = $name; } // セッション保存ディレクトリをセット if (!empty($this->sesspath) and is_writable($this->sesspath)) { session_save_path($this->sesspath); // 指定されていないか書き込めないならfalseを返す } else { return false; } // セッション名の指定 session_name($this->sessname); // セッションが存在しない場合の処理 if (empty($_COOKIE[$this->sessname])) { // 生成したセッションIDを付与する $base = $this->genRand(); session_id($base); } // end of if // セッションタイムアウトの秒数をコンフィグから取得しセット $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); session_set_cookie_params($conf->getIni('SESSION', 'timeout')); // セッションの開始 return session_start(); }
/** * test_getIni_WithTwoArgs() * * パース後のgetIni()の挙動をテストする(セクションのみ指定) */ public function test_getIni_WithTwoArgs() { $want = "RisolutoApps\\Pages\\View"; $instance = new Conf(); $instance->parse(RISOLUTO_CONF . 'risoluto.ini'); $this->assertEquals($instance->getIni('SEQ', 'default'), $want); unset($instance); }
/** * risolutoErrorLog($loglevel, $msg) * * エラーログを出力する * * @access private * * @param string $loglevel 出力するメッセージのログレベル * @param string $msg 出力するメッセージ * * @return boolean 常にTrue */ private function risolutoErrorLog($loglevel, $msg) { // ログ出力しエラーメッセージを返却 $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); $log = new Log(); $log->setCurrentLogLevel($conf->getIni('LOGGING', 'loglevel')); $log->log($loglevel, $msg); }
/** * getProvider() * * 認証プロバイダの情報を取得する * * @access private * * @param void * * @return object 認証プロバイダのインスタンス */ private static function getProvider() { // コンフィグファイルの読み込み $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); // プロバイダ情報を取得 $tmp_provider = $conf->getIni('AUTH', 'provider'); $provider = !empty($tmp_provider) ? $tmp_provider : 'Risoluto\\AuthDb'; // 取得したプロバイダのインスタンスを生成し返却する return $provider; }
/** * findCallClass() * * 呼び出すクラスを決定する * * @access private * * @param void * * @return array 呼び出すクラスの情報等 */ private function findCallClass() { // コンフィグファイルの読み込み $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); // デフォルトの情報をセット $load = $conf->getIni('SEQ', 'default'); $param = []; // $_GET['seq']の値をチェックする $seq = $this->fixSeqParam(isset($_GET['seq']) ? $_GET['seq'] : ''); // GETパラメタ中の情報(「seq」)が指定されていればそれを採用 if (isset($seq) and !empty($seq)) { // 「.」が付いていたらそこで分割 if (strpos('.', $seq) === false) { $sep = explode('.', $seq); // 分割後、1つめの要素は画面指定とみなし、2つめ以降の要素はパラメタと見なす $load = 'RisolutoApps\\' . $sep[0]; unset($sep[0]); foreach ($sep as $dat) { $param[] = $dat; } // 「.」が付いていなければそのまま採用する } else { $load = 'RisolutoApps\\' . $seq; $param = []; } // $load中の「_」を「\」に置換 $load = str_replace('_', '\\', $load); // 指定されたアプリケーションが存在していないか無効指定されていたらエラーとする $target = RISOLUTO_APPS . str_replace('\\', DIRECTORY_SEPARATOR, $load) . '.php'; clearstatcache(true); if (!file_exists($target) or !is_file($target) or !is_readable($target) or $this->isDisabled(dirname($target), $load)) { // ログにも記録しておく $this->coreError('warn', 'classnotfound', $load . ' (Path: ' . $target . ' ) / Go to Error page.'); $load = $conf->getIni('SEQ', 'error'); $param = []; } } // サービスストップファイルが存在するかロードアベレージが一定値以上ならサービスストップ $loadavg = sys_getloadavg(); $max_loadavg = $conf->getIni('LIMITS', 'max_loadavg'); clearstatcache(true); if (file_exists(RISOLUTO_SYSROOT . 'ServiceStop') or !empty($max_loadavg) and $loadavg[0] > $max_loadavg) { // ログにも記録しておく $this->coreError('warn', 'servicestop', 'Current Loadavg: ' . $loadavg[0] . ' / Setting: ' . $max_loadavg); $load = $conf->getIni('SEQ', 'servicestop'); $param = []; } // 決定した情報を返却する $retval = ['load' => $load, 'param' => $param]; return $retval; }
/** * getInfoFromConf() * * コンフィグから認証情報ファイルの情報を取得する * * @access private * * @param void * * @return array 認証情報ファイルの情報 */ private function getInfoFromConf() { // コンフィグファイルの読み込み $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); // コンフィグファイルの読み込み $dbconf = new Conf(); $dbconf->parse(RISOLUTO_CONF . 'risoluto_db.ini'); // コンフィグからファイル名情報を取得する return ['usertable' => $conf->getIni("AUTH", "users"), 'grouptable' => $conf->getIni("AUTH", "groups"), 'db' => $dbconf->getIni("DB")]; }
/** * getDefaultHeader() * * デフォルトのヘッダ情報が格納された配列を返却する * * @access private * * @param void * * @return array デフォルトのヘッダ */ private function getDefaultHeader() { // Risolutoのコンフィグからテーマの情報を取得する $conf = new Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); $outboards = $conf->getIni('THEME', 'outboards'); return ['robots' => $this->getDefaultHeaderRobots(), 'description' => $this->getDefaultHeaderDescription(), 'keywords' => $this->getDefaultHeaderKeywords(), 'author' => $this->getDefaultHeaderAuthor(), 'css' => $this->getDefaultHeaderCss($outboards), 'js' => $this->getDefaultHeaderJavaScript($outboards), 'favicon' => $this->getDefaultHeaderFavicon($outboards), 'title' => $this->getDefaultHeaderTitle(), 'outboards' => $outboards]; }
/** * test_ParseSet_ValidFile() * * Iniファイル形式のファイルが指定された場合のParse()の挙動をテストする */ public function test_ParseSet_ValidFile() { $instance = new Conf(); $this->assertTrue($instance->parse(RISOLUTO_CONF . 'risoluto.ini')); unset($instance); }