예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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);
 }
예제 #4
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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;
 }
예제 #6
0
 /**
  * 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];
 }