[PHP]Slim Frameworkで302リダイレクトを行う方法

カテゴリ: SlimFramework

PHPで利用できるマイクロフレームワークの一つに、Slim Frameworkというものがあります。今回は、Slim Frameworkで、302リダイレクトを行う方法を説明します。

Slim Frameworkでは、HTTPのリクエスト、レスポンスの情報をPSR-7の規格に準じた形で実装しているので、PSR-7のResponseクラスについての知識があると簡単に実装できます。

PSR-7におけるリダイレクト方法

こちらが、302リダイレクトを行うためのサンプルコードです。

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

$app->get('/test', function (Request $request, Response $response) {
    $url = "http://yahoo.co.jp/";
    return $response->withStatus(302)->withHeader('Location', $url);
});

$responseオブジェクトがもつwithStatus()メソッドでHTTPのステータスコード302を表現します。
リダイレクト先のURLは、HTTPヘッダのLocationで指定できるので、withHeader()で遷移先を指定すればOKです。

今回作ったプログラムの全体

今回作成した確認プログラムの全体は以下の通りです。
さすがSlimというだけあって、1ファイルだけで、非常にシンプルに実装できてしまいます。

<?php
// index.php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';

$app = new \Slim\App;
$app->get('/test', function (Request $request, Response $response) {
    $url = "http://yahoo.co.jp/";
    return $response->withStatus(302)->withHeader('Location', $url);
});
$app->run();

プログラムの実行も、composerが入っていれば下記の2行でインストールと実行が行えてしまいます。

composer require slim/slim
php -S localhost:80 index.php

php -SでWebサーバを起動した後、ブラウザから"http://localhost/test"にアクセスすると動作を確認できます。

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。