概要
下記の記事で以前、Sessionの継続時間の設定について解説しました。
今回はCakePHPにおけるSessionの基本的な使い方について解説していきます。
コード一覧
書き込み
write()
$this->request->getSession()->write('key', 'val');
読み込み
read():通常の読み込み
$this->request->getSession()->read('key');
keyが存在しない場合はnullが返ります。
readOrFail():keyが存在しなければ例外扱い ※ver4.1~
try {
$value = $this->request->getSession()->readOrFail('key');
//keyを読み込めた場合の処理。
} catch (\Cake\Http\Exception\NotFoundException $e) {
// 'key'が読み込めなかった場合の処理
}
削除
delete():通常の削除
$this->request->getSession()->delete('key');
consume():読み込み後にkey・valueを削除
//値を取得して、sessionから削除
$tempData = $this->request->getSession()->consume('key');
//valueを表示。
echo $tempData;
//再度読み込む。
$data = $this->request->getSession()->read('key');
//既に削除されているのでnullとなる。
echo $data;
keyの存在確認
check()
if ($this->request->getSession()->check('key')) {
// keyが存在した場合のコード
}else{
//keyが存在しなかった場合のコード
}
全Session破棄
destroy()
$this->request->getSession()->destroy();
SessionIDの更新
renew()
$this->request->getSession()->renew();
使い方
Controllerで以下のように利用するのが一般的
<?php
namespace App\Controller;
class SamplesController extends AppController
{
public function demo(){
$this->request->getSession()->read('key);
}
}
参考
CakePHP 4.x Strawberry Cookbook:Session
コメント