Developer

【PHP応用】セッション
2021.06.30
Lv2

【PHP応用】セッション

セッションは、
サーバー内部に保存された、
一ユーザーの一続きの操作を識別するための情報です。

セッション操作メソッドの種類

CakePHPにはセッションを管理するメソッドがいくつかあります。
CakePHPではセッションは自動で開始するようになっています。
ですので、セッションを開始するメソッドはありません。

セッションオブジェクトの取得

セッションのオブジェクトを取得します。
$thisからgetRequest()でリクエストオブジェクトを呼び出し、その中からgetSession()でセッションオブジェクトを取得します。

セッションの書き込み

セッションに情報を書き込みます。キーと値を引数として渡します。
セッションオブジェクトにwrite()メソッドで情報を書き込みます。1つ目の引数がキー、2つ目の引数が値です。

セッションの読み取り

セッションから指定したキーに基づく情報を読み取ります。
セッションオブジェクトからread()メソッドで情報を読み取ります。引数にはキーを渡します。

セッションの読み取り&削除

セッションから指定したキーに紐づく値を取得し、セッション情報を削除します
セッションオブジェクトからconsume()メソッドで情報を読み取ります。引数にはキーを渡します。読み取り後、該当するキーに紐づく情報は削除されます。

セッションの削除

セッションから指定したキーに基づく情報を削除します
セッションオブジェクトからdelete()メソッドで情報を削除します。引数にはキーを渡します。

セッションの存在チェック

セッションに指定したキーに紐づく値があるか確認します
セッションオブジェクトからcheck()メソッドで情報を確認します。引数にはキーを渡します。
値が形式上存在してもnullの場合はfalseを返します。

セッションの破棄

セッション自体を破棄します。
セッションオブジェクトからdestroy()メソッドを呼び出してセッションオブジェクトを破棄します。

セッションの書き方

cakePHPでのセッションの書き方を見ていきましょう。
セッションの取得、書き込み、読み取り、

// セッションオブジェクトの取得
$session = $this->getRequest()->getSession();

// セッションの書き込み
$session->write('hoge.piyo', 'foo!!');

// セッションの読み取り
$session->read('hoge.piyo');

// セッションの読み取り&削除
$session->consume('hoge.piyo');

// セッションの削除
$session->delete('hoge.piyo');

// セッションの存在チェック()
if($session->check('hoge.piyo')){
    // 'hoge.piyo'が存在しnullではないときはtrue
}

// セッションの破棄
$session->destroy();

PHPWEBプログラミング講座 連載目次リンク

PHPWEBプログラミング講座 連載目次