Example #1
0
 /**
  * Sessionクラスの初期化
  * @param string セッションの範囲となるドメイン
  * @param string セッションの有効期限
  * @param string DBDSN情報
  */
 protected static function _init($argDomain = NULL, $argExpiredtime = NULL, $argDSN = NULL)
 {
     if (FALSE === self::$_initialized) {
         // セッションの有効ドメインを設定
         self::$_domain = $argDomain;
         if (NULL === $argDomain) {
             self::$_domain = $_SERVER['SERVER_NAME'];
         }
         $DSN = NULL;
         $expiredtime = self::$_expiredtime;
         if (class_exists('Configure') && NULL !== Configure::constant('DB_DSN')) {
             // 定義からセッションDBの接続情報を特定
             $DSN = Configure::DB_DSN;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_DB_DSN')) {
             // 定義からセッションDBの接続情報を特定
             $DSN = Configure::SESSION_DB_DSN;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_EXPIRED_TIME')) {
             // 定義からセッションの有効期限を設定
             $expiredtime = Configure::SESSION_EXPIRED_TIME;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_TBL_NAME')) {
             // 定義からセッションテーブル名を特定
             self::$_sessionTblName = Configure::SESSION_TBL_NAME;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_TBL_PKEY_NAME')) {
             // 定義からセッションテーブルのPKey名を特定
             self::$_sessionPKeyName = Configure::SESSION_TBL_PKEY_NAME;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_DATE_KEY_NAME')) {
             // 定義から日時フィールド名を特定
             self::$_sessionDateKeyName = Configure::SESSION_DATE_KEY_NAME;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('CRYPT_KEY')) {
             // 定義から暗号化キーを設定
             self::$_cryptKey = Configure::CRYPT_KEY;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('NETWORK_CRYPT_KEY')) {
             // 定義から暗号化キーを設定
             self::$_cryptKey = Configure::NETWORK_CRYPT_KEY;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_CRYPT_KEY')) {
             // 定義から暗号化キーを設定
             self::$_cryptKey = Configure::SESSION_CRYPT_KEY;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('CRYPT_IV')) {
             // 定義から暗号化IVを設定
             self::$_cryptIV = Configure::CRYPT_IV;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('NETWORK_CRYPT_IV')) {
             // 定義から暗号化IVを設定
             self::$_cryptIV = Configure::NETWORK_CRYPT_IV;
         }
         if (class_exists('Configure') && NULL !== Configure::constant('SESSION_CRYPT_IV')) {
             // 定義から暗号化IVを設定
             self::$_cryptIV = Configure::SESSION_CRYPT_IV;
         }
         if (defined('PROJECT_NAME') && strlen(PROJECT_NAME) > 0 && class_exists(PROJECT_NAME . 'Configure')) {
             $ProjectConfigure = PROJECT_NAME . 'Configure';
             if (NULL !== $ProjectConfigure::constant('DB_DSN')) {
                 // 定義からセッションDBの接続情報を特定
                 $DSN = $ProjectConfigure::DB_DSN;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_DB_DSN')) {
                 // 定義からセッションDBの接続情報を特定
                 $DSN = $ProjectConfigure::SESSION_DB_DSN;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_EXPIRED_TIME')) {
                 // 定義からセッションの有効期限を設定
                 $expiredtime = $ProjectConfigure::SESSION_EXPIRED_TIME;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_TBL_NAME')) {
                 // 定義からセッションテーブル名を特定
                 self::$_sessionTblName = $ProjectConfigure::SESSION_TBL_NAME;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_TBL_PKEY_NAME')) {
                 // 定義からセッションテーブルのPKey名を特定
                 self::$_sessionPKeyName = $ProjectConfigure::SESSION_TBL_PKEY_NAME;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_DATE_KEY_NAME')) {
                 // 定義から日時フィールド名を特定
                 self::$_sessionDateKeyName = $ProjectConfigure::SESSION_DATE_KEY_NAME;
             }
             if (NULL !== $ProjectConfigure::constant('CRYPT_KEY')) {
                 // 定義から暗号化キーを設定
                 self::$_cryptKey = $ProjectConfigure::CRYPT_KEY;
             }
             if (NULL !== $ProjectConfigure::constant('NETWORK_CRYPT_KEY')) {
                 // 定義から暗号化キーを設定
                 self::$_cryptKey = $ProjectConfigure::NETWORK_CRYPT_KEY;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_CRYPT_KEY')) {
                 // 定義から暗号化キーを設定
                 self::$_cryptKey = $ProjectConfigure::SESSION_CRYPT_KEY;
             }
             if (NULL !== $ProjectConfigure::constant('CRYPT_IV')) {
                 // 定義から暗号化IVを設定
                 self::$_cryptIV = $ProjectConfigure::CRYPT_IV;
             }
             if (NULL !== $ProjectConfigure::constant('NETWORK_CRYPT_IV')) {
                 // 定義から暗号化IVを設定
                 self::$_cryptIV = $ProjectConfigure::NETWORK_CRYPT_IV;
             }
             if (NULL !== $ProjectConfigure::constant('SESSION_CRYPT_IV')) {
                 // 定義から暗号化IVを設定
                 self::$_cryptIV = $ProjectConfigure::SESSION_CRYPT_IV;
             }
         }
         // DBOを初期化
         if (NULL === self::$_DBO) {
             if (NULL !== $argDSN) {
                 // セッションDBの接続情報を直指定
                 $DSN = $argDSN;
             }
             self::$_DBO = DBO::sharedInstance($DSN);
         }
         // セッションの有効期限を設定
         if (NULL !== $argExpiredtime) {
             // セッションの有効期限を直指定
             $expiredtime = $argExpiredtime;
         }
         self::$_expiredtime = $expiredtime;
         // セッションデータクラスの初期化
         parent::_init($expiredtime, $DSN);
         // 初期化済み
         self::$_initialized = TRUE;
     }
 }