いろいろ~備忘録~

WEBエンジニアによる記録

勉強になったことを記録

【FuelPHP】Sessionクラスの使い方

Sessionクラス

FuelPHPには、Sessionクラスが用意されています。
リクエスト時に削除されるような一時的なセッション(フラッシュセッション)の発行も可能です。

設定ファイル

セッションクラスは、 fuel/core/config/session.php 設定ファイルで設定されています。
既にデフォルト設定が入力されていますが、必要に応じて設定を修正したい場合は、
fuel/app/config/ 配下にファイルをコピーして設定を修正することで上書きされます。

リファレンス
Session 設定 - クラス - FuelPHP ドキュメント

セッションの読み書き

set()メソッド
第1引数に変数名、第2引数に値を指定します。値には配列の指定も可能です。

// 文字列を指定
Session::set('user_id', 'id_1');

// 配列を指定
Session::set('login', array('user' => $user_id, 'hash' => $login_hash));


get()メソッド
set()メソッドで保存したセッションデータは、get()で同じ変数名を指定することで値の取得が可能です。

// セッションデータを取得
$user_id = Session::get('user_id');

// SimpleAuthのログイン情報を取得
$username = Session::get('username');
$login_hash = Session::get('login_hash');


get()に引数を指定しない場合は、現在セッションに保存されているデータを全て取得します。

// 全セッションデータを取得
$sess_data = Session::get();


フラッシュセッション

フラッシュセッションとは、次のリクエスト時に自動的に削除されるセッションデータのことです。

フラッシュセッションの読み書きは、set_flash()get_flash()を用いて行います。
引数の指定方法はset()、get()メソッドと同様になります。

フラッシュセッションを読み込まれていない状態に戻します。フラッシュセッションの寿命を次のリクエストまで伸ばします。

// 引数はフラッシュセッションの伸ばしたい変数名
Session::keep_flash('target');


削除、破棄

セッション変数を削除する場合は、delete()delete_flash()を使用します。
引数には、削除したい変数名を指定します。

// user_idという名前のセッションデータを削除
Session::delete('user_id');

// targetという名前のフラッシュセッションを削除
Session::delete_flash('target');

セッション自体を破棄する場合は、Session::destroy()を使用します。

セッションIDの変更と取得

セッションIDはSessionクラスの設定で自動的に変更がされますが、明示的に行いたい時にはSession::rotate()メソッドを使用します。

// セッションIDを変更
Session::rotate();


セッションIDの取得にSession::key()を使用します。

$sess_id = Session::key();