Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


psr:psr15

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
psr:psr15 [2020/07/28 11:24]
tanaka [PSR-15: HTTPサーバーリクエストハンドラー]
psr:psr15 [2020/09/01 11:54] (現在)
tanaka [PSR-15: HTTP Server Request Handlers]
行 1: 行 1:
-> 編集中 
- 
 ====== PSR-15: HTTP Server Request Handlers ====== ====== PSR-15: HTTP Server Request Handlers ======
  
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-06-23//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-06-23//
  
-本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。+本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。
  
 関連記事 関連記事
行 21: 行 19:
   * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]]    * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]] 
   * PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー   * PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー
 +  * [[psr:psr16|PSR-16: Common Interface for Caching Libraries - キャッシングライブラリのための共通インターフェース]] 
 +  * [[psr:psr17|PSR-17: HTTP Factories - HTTPファクトリー]] 
 +  * [[psr:psr18|PSR-18: HTTP Client - HTTPクライアント]] 
 +  * [[psr:psr19|PSR-19: PHPDoc tags(Draft) - PHPDocタグ]] 
  
 ----- -----
行 27: 行 29:
  
  --- // 原文より翻訳 [[https://www.php-fig.org/psr/psr-15/|PSR-15: HTTP Server Request Handlers]] 2020-07-28 現在 //  --- // 原文より翻訳 [[https://www.php-fig.org/psr/psr-15/|PSR-15: HTTP Server Request Handlers]] 2020-07-28 現在 //
- 
-This document describes common interfaces for HTTP server request handlers (“request handlers”) and HTTP server middleware components (“middleware”) that use HTTP messages as described by PSR-7 or subsequent replacement PSRs. 
  
 このドキュメントでは、[[https://www.php-fig.org/psr/psr-7/|PSR-7]]またはその後の代替PSRで説明されているHTTPメッセージを使用するHTTPサーバーリクエストハンドラー(「リクエストハンドラー」)とHTTPサーバーミドルウェアコンポーネント(「ミドルウェア」)の一般的なインターフェースについて説明します。 このドキュメントでは、[[https://www.php-fig.org/psr/psr-7/|PSR-7]]またはその後の代替PSRで説明されているHTTPメッセージを使用するHTTPサーバーリクエストハンドラー(「リクエストハンドラー」)とHTTPサーバーミドルウェアコンポーネント(「ミドルウェア」)の一般的なインターフェースについて説明します。
  
-HTTP request handlers are a fundamental part of any web application. Server-side code receives a request message, processes it, and produces a response message. HTTP middleware is a way to move common request and response processing away from the application layer. +HTTPリクエストハンドラは、あらゆるWebアプリケーションの基本的な部分です。サーバー側コードは、リクエストメッセージを受信して処理し、応答メッセージを生成します。HTTPミドルウェアは、一般的なリクエストとレスポンスの処理をアプリケーション層から分離するための方法の1つです。
- +
-HTTPリクエストハンドラは、あらゆるWebアプリケーションの基本的な部分です。サーバー側コードは、リクエストメッセージを受信して処理し、応答メッセージを生成します。HTTPミドルウェアは、一般的なリクエストとレスポンスの処理をアプリケーション層から分離する方法です。 +
- +
-The interfaces described in this document are abstractions for request handlers and middleware.+
  
 このドキュメントで説明するインターフェースは、リクエストハンドラーとミドルウェアを抽象化したものです。 このドキュメントで説明するインターフェースは、リクエストハンドラーとミドルウェアを抽象化したものです。
  
-Note: All references to “request handlers” and “middleware” are specific to server request processing. +注:「リクエストハンドラー」および「ミドルウェア」へのすべての参照は、サーバーリクエスト処理に固有なものです。
- +
-注:「リクエストハンドラー」および「ミドルウェア」へのすべての参照は、サーバーリクエスト処理に固有です。 +
- +
-The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.+
  
 このドキュメントのキーワード ''MUST'' , ''MUST NOT'' , ''REQUIRED'' , ''SHALL'' , ''SHALL NOT'' , ''SHOULD'' , ''SHOULD NOT'' , ''RECOMMENDED'' , ''MAY'' 及び ''OPTIONAL'' は、 [[https://www.ietf.org/rfc/rfc2119.txt|RFC 2119]]で説明されているように解釈して下さい。 このドキュメントのキーワード ''MUST'' , ''MUST NOT'' , ''REQUIRED'' , ''SHALL'' , ''SHALL NOT'' , ''SHOULD'' , ''SHOULD NOT'' , ''RECOMMENDED'' , ''MAY'' 及び ''OPTIONAL'' は、 [[https://www.ietf.org/rfc/rfc2119.txt|RFC 2119]]で説明されているように解釈して下さい。
行 64: 行 56:
 ===== 1. 仕様 ====== ===== 1. 仕様 ======
  
-==== 1.1 リクエストハンドラ ==== +==== 1.1 リクエストハンドラー ==== 
->TODO+ 
 +リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。 
 + 
 +リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( ''MAY'' )。例外のタイプは定義されていません。 
 + 
 +この規約を使用するリクエストハンドラーは、次のインターフェースを実装する必要があります( ''MUST'' ): 
 + 
 +  * ''Psr\Http\Server\RequestHandlerInterface''
  
 \\ \\
  
 ==== 1.2 ミドルウェア ==== ==== 1.2 ミドルウェア ====
->TODO+ 
 +ミドルウェアコンポーネントは個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。 
 + 
 +ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( ''MAY'' )。 
 + 
 +この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( ''MUST'' ): 
 + 
 +  * ''Psr\Http\Server\MiddlewareInterface''
  
 \\ \\
  
 ==== 1.3 レスポンスの生成 ==== ==== 1.3 レスポンスの生成 ====
->TODO+ 
 +応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の ''ResponseInterface'' プロトタイプ または ''ResponseInterface'' インスタンスを生成できるファクトリーを構成することをお勧めします( ''RECOMMENDED'' )。それは、特定のHTTPメッセージの実装への依存を防ぐためです。
  
 \\ \\
  
 ==== 1.4 例外のハンドリング ==== ==== 1.4 例外のハンドリング ====
->TODO+ 
 +ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( ''RECOMMENDED'' )。このミドルウェアは、最初に実行されるコンポーネントであり、全ての他の処理をラップすべきです( ''SHOULD'' )。それは、レスポンスが常に生成されることを保証するためです。
  
 \\ \\
行 87: 行 95:
  
 ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== ==== 2.1 Psr\Http\Server\RequestHandlerInterface ====
->TODO+ 
 +リクエストハンドラーは次のインターフェースを実装する必要があります( ''MUST'' )。 
 + 
 +<code php RequestHandlerInterface.php> 
 +namespace Psr\Http\Server; 
 + 
 +use Psr\Http\Message\ResponseInterface; 
 +use Psr\Http\Message\ServerRequestInterface; 
 + 
 +/** 
 + * サーバーリクエストを処理し、レスポンスを生成します。 
 + * 
 + * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。 
 + */ 
 +interface RequestHandlerInterface 
 +
 +    /** 
 +     * リクエストを処理し、レスポンスを生成します。 
 +     * 
 +     * レスポンスを生成するために、他の協調するコードを呼び出すことができます。 
 +     */ 
 +    public function handle(ServerRequestInterface $request): ResponseInterface; 
 +
 +</code>
  
 \\ \\
  
 ==== 2.2 Psr\Http\Server\MiddlewareInterface ==== ==== 2.2 Psr\Http\Server\MiddlewareInterface ====
->TODO+ 
 +互換性のあるミドルウェアコンポーネントは次のインターフェースを実装する必要があります( ''MUST'' )。 
 + 
 +<code php MiddlewareInterface.php> 
 +namespace Psr\Http\Server; 
 + 
 +use Psr\Http\Message\ResponseInterface; 
 +use Psr\Http\Message\ServerRequestInterface; 
 + 
 +/** 
 + * サーバーのリクエストとレスポンスを処理する参加者。 
 + * 
 + * HTTPミドルウェアコンポーネントは、HTTPメッセージの処理に参加します: 
 + * つまり、リクエストに基づいて動作するか、レスポンスを生成するか、 
 + * または リクエストを後続のミドルウェアに転送し場合によってはそのレスポンスに基づいて動作します。 
 + */ 
 +interface MiddlewareInterface 
 +
 +    /** 
 +     * 着信サーバー要求を処理します。 
 +     * 
 +     * レスポンスを生成するために、着信サーバーリクエストを処理します。 
 +     * レスポンス自体を生成できない場合は、それをするのに提供されたリクエストハンドラーに委任します。 
 +     */ 
 +    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface; 
 +
 +</code>
  
 \\ \\
  
psr/psr15.1595903076.txt.gz · 最終更新: 2020/07/28 11:24 by tanaka