概要
この記事では私がこれまで学習してきたPHP、Laravel、Ruby on Railsでのsessionの使い方について紹介していきたいと思います。
対象とする読者
- 様々なフレームワークや言語でのsessionの使い方の違いについて知りたい方
- PHP、Laravel、Ruby on Railsでのセッションの基本から詳細な使い方を学びたい方
- 初学者の方
PHP
以下がPHPでのsessionを使う際のサンプルコードです。
session_start();//sessionのスタート
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
session_start()
関数でセッションのスタートをします。
セッションを開始すると、PHP はスーパーグローバル$_SESSION
にすべてのセッションデータを格納します。
通常は、PHP がスクリプトの処理を終了するときに、セッションは自動的に終了します。 手動でセッションを終了させるにはsession_write_close()
関数を使います。
Laravel
Laravelでセッションデータを操作する主な方法は、グローバルなsessionヘルパとRequestインスタンスの2つあります。今回は、Requestインスタンスを介してセッションにアクセスする方法のみ紹介したいと思います。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* 特定のユーザーのプロファイルを表示
*
* @param Request $request
* @param int $id
* @return Response
*/
public function show(Request $request, $id)
{
$value = $request->session()->get('key');//keyの中にあるアイテムを取得する
}
}
リクエストインスタンスを使用してアイテムを取得するにはget
メソッドを使います。session内のデータを全て取得したい場合はall
メソッドを使用します。
また、データを保存したいときには以下のようにput
メソッドを使います。
$request->session()->put('key', 'value');
put
メソッドの1番目の引数はsessionに保存するための箱の名前、
2番目の引数であるvalue
の部分にはsessionに保存したい値を入れます。
Ruby on Rails
RubyのフレームワークであるRuby on Railsでの使い方は次の通りです。
#値の設定
session[キー] = "値"
session[:user_id] = 1
#値の参照
session[キー]
session[:user_id]
session[]
の[]内にキー名を入れることで使うことができます。
終わりに
さまざまなフレームワークや言語でsessionの使い方について紹介してきました。
この記事を読んでみてさらに詳しい使い方について知りたくなった場合は参考ページも見てみてください。
参考