Sessionの基本 【CakePHP4】

概要

下記の記事で以前、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 CookbookSession

コメント

タイトルとURLをコピーしました