セッションは、
サーバー内部に保存された、
一ユーザーの一続きの操作を識別するための情報です。
セッション操作メソッドの種類
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();