0Pricing
PHP Academy · レッスン

HttpFoundation:リクエストとレスポンス

スーパーグローバルをHttpFoundationのRequestでラップし、Responseオブジェクトを構築します

「HttpFoundation:リクエストとレスポンス」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

HttpFoundationとは

Symfony HttpFoundationは、低レベルなHTTPスーパーグローバル($_GET、$_POST、$_SERVER)を、整理されたオブジェクト指向のクラスでラップする独立したPHPコンポーネントです。

HttpFoundationのインストール

Composerを使って独立したパッケージとしてインストールします。

$ composer require symfony/http-foundation

グローバル変数からRequestを作成する

スーパーグローバルから現在のHTTPリクエストを取得します。

<?php
use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();
echo $request->query->get("page", 1);      // GET param
echo $request->request->get("email");       // POST param
echo $request->headers->get("User-Agent"); // header

入力値の読み取り

Requestは、入力元ごとに型付きのバッグを提供します。

<?php
$request->query->get("id");         // $_GET
$request->request->get("name");     // $_POST
$request->attributes->get("key");   // route attributes
$request->cookies->get("token");    // $_COOKIE
$request->files->get("avatar");     // $_FILES
$request->server->get("REMOTE_ADDR"); // $_SERVER

Requestのメソッド

HTTPメソッドとパスを確認します。

<?php
$request->getMethod();       // "GET", "POST", etc.
$request->isMethod("POST"); // bool
$request->getPathInfo();    // "/api/users/1"
$request->getHost();        // "example.com"
$request->isSecure();       // true if HTTPS

Responseの構築

HTTPレスポンスを作成して送信します。

<?php
use Symfony\Component\HttpFoundation\Response;

$response = new Response("Hello World", 200, [
    "Content-Type" => "text/plain",
]);
$response->send();

JsonResponse

正しいContent-Typeヘッダーを自動的に付けてJSONを返します。

<?php
use Symfony\Component\HttpFoundation\JsonResponse;

$response = new JsonResponse(["status" => "ok", "id" => 42]);
$response->send();

RedirectResponse

ユーザーを別のURLへリダイレクトします。

<?php
use Symfony\Component\HttpFoundation\RedirectResponse;

$response = new RedirectResponse("/dashboard", 302);
$response->send();

ヘッダーとCookieの設定

送信する前に、レスポンスへヘッダーとCookieを追加します。

<?php
$response->headers->set("X-Rate-Limit", "100");
$response->headers->setCookie(
    new Cookie("prefs", "dark", time() + 86400, "/", null, true, true)
);

BinaryFileResponse

BinaryFileResponseを使用して、ファイルのダウンロードを効率的にストリーミングします。

<?php
use Symfony\Component\HttpFoundation\BinaryFileResponse;

$response = new BinaryFileResponse("/path/to/file.pdf");
$response->setContentDisposition("attachment", "report.pdf");
$response->send();

StreamedResponse

StreamedResponseはデータを生成された時点で送信するため、大規模なエクスポートやリアルタイムストリーミングに適しています。

まとめ

HttpFoundationはスーパーグローバルをRequestでラップし、Response、JsonResponse、RedirectResponseを使ってレスポンスを構築します。LaravelとSymfonyの両方で使用されるHTTPレイヤーです。

理解度チェック

HttpFoundationのRequestでGETクエリパラメータにアクセスするバッグはどれですか?

よくある質問

「HttpFoundation:リクエストとレスポンス」レッスンは無料ですか?

はい。「HttpFoundation:リクエストとレスポンス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「HttpFoundation:リクエストとレスポンス」で何を学びますか?

スーパーグローバルをHttpFoundationのRequestでラップし、Responseオブジェクトを構築します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「HttpFoundation:リクエストとレスポンス」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. HttpFoundation:リクエストとレスポンス
  2. DependencyInjectionコンテナ
  3. EventDispatcher:疎結合なイベント
  4. Consoleコンポーネント:CLIコマンド
← PHP Academyに戻る