6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【PHP・Laravel・Rails】これまで学んだフレームワーク・言語でのsessionの使い方振り返ってみた

Last updated at Posted at 2023-10-31

概要

この記事では私がこれまで学習してきた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の使い方について紹介してきました。
この記事を読んでみてさらに詳しい使い方について知りたくなった場合は参考ページも見てみてください。

参考

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?