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 送信後には安全のため例外を投げる。 |