/** * セッションに指定のキー名で指定のデータをしまう * セッションが初期化されていなければ初期化する * @param string キー名 * @param mixed 変数全て(PHPオブジェクトは保存出来ない!) */ public static function set($argKey, $argment) { static $replaced = FALSE; if (FALSE === self::$_initialized) { // 自動セッションスタート self::_init(); } // トークンの初期化 if (FALSE === self::$_tokenInitialized && FALSE === self::_initializeToken()) { // エラー throw new Exception(__CLASS__ . PATH_SEPARATOR . __METHOD__ . PATH_SEPARATOR . __LINE__ . PATH_SEPARATOR . Utilities::getBacktraceExceptionLine()); } if (FALSE === $replaced) { // Cookieの書き換えがまだなら書き換える self::setTokenToCookie(self::$_tokenKeyName); // 2度はヘッダ出力しない為に処理終了を取っておく $replaced = TRUE; } // XXX 標準ではセッションデータのPKeyはセッションの固有識別子 return parent::set(self::$_identifier, $argKey, $argment); }
/** * セッションデータに指定のキー名の値を削除する * @param string セッションデータのプライマリーキー * @param string キー名 * @param mixed 変数全て(PHPオブジェクトは保存出来ない!) * @param int 有効期限の直指定 * @param mixed DBDSN情報の直指定 */ public static function remove($argPKey, $argKey, $argExpiredtime = NULL, $argDSN = NULL) { if (FALSE === self::$_initialized) { self::_init($argExpiredtime, $argDSN); } // データに実際にアクセスする時に、データの初期化は実行される if (NULL === self::$_sessionData) { self::_initializeData($argPKey); } // 配列にデータから抹消 unset(self::$_sessionData[$argKey]); // セッションデータレコードの更新 if (FALSE === self::_finalizeData($argPKey)) { // エラー throw new Exception(__CLASS__ . PATH_SEPARATOR . __METHOD__ . PATH_SEPARATOR . __LINE__ . PATH_SEPARATOR . Utilities::getBacktraceExceptionLine()); } return TRUE; }