【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();