Naify\Session\Session クラス

セッション管理クラス — Session Manager

$_SESSION をネームスペース付き Storage 単位で安全に扱う。

  • ネームスペース単位で有効期限の設定が可能
  • gc() による期限切れデータの手動削除(アプリ側で呼ぶ)

使用例

$storage = Session::getStorage('cart', ttl: 1800);
$storage->set('item', $itemData);
$val = $storage->get('item');

設計意図

再生成時にデータは破棄される(TTL 切れ=データ期限切れ)。 設定を変更したい場合は再生成後に setTtl() / setGCTarget() を使う。

メソッド

メソッド説明
public static getStorage(string $namespace = default, int $ttl = 3600, bool $gcTarget = true): Storage セッションストレージを取得する
期限切れの Storage は自動的に再生成される。
再生成時は元の Storage の TTL / gcTarget 設定を引き継ぐ。
引数の $ttl / $gcTarget は新規作成時のみ使用される。
再生成時にデータは破棄される(TTL 切れ=データ期限切れ)。 設定を変更したい場合は再生成後に setTtl() / setGCTarget() を使う。
public static start(): bool セッションを開始する
まだ開始されていない場合のみ `session_start()` を呼び、
Naify 用のルート namespace も初期化する。
public static isStarted(): bool セッションが開始されているか
public static gc(): void ガベージコレクタ — 期限切れかつ GC 対象の namespace を削除する
getStorage() は期限切れ namespace を自動的に再生成するため、
gc() の役割は $_SESSION 上に残った不要データの解放のみ。
アプリ側で任意のタイミングに呼ぶ。
public static destroy(?string $namespace): void ストレージを削除する
namespace を省略すると、Naify 管理下の Storage を一括クリアする。
未開始の場合は保存済みセッションを読み込んでから削除する。
public static regenerateId(): bool セッション ID を再発行する
private static requireStarted(): void 永続セッションが使えない状態で Storage を変更しない
public static setSessionId(string $sessionId): string セッション ID をセットする
開始後や header 送信後には安全のため例外を投げる。