Ground Sunlight

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

ユーザ用ツール

サイト用ツール


psr:psr15

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
psr:psr15 [2020/07/28 11:38]
tanaka [2.1 Psr\Http\Server\RequestHandlerInterface]
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 リクエストハンドラー ====
- +
-A request handler is an individual component that processes a request and produces a response, as defined by PSR-7.+
  
 リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。 リクエストハンドラーは、PSR-7で定義されているように、リクエストを処理して応答を生成する個別のコンポーネントです。
- 
-A request handler MAY throw an exception if request conditions prevent it from producing a response. The type of exception is not defined. 
  
 リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( ''MAY'' )。例外のタイプは定義されていません。 リクエスト条件によりリクエストハンドラーがレスポンスを生成できない場合、リクエストハンドラーは例外をスローする場合があります( ''MAY'' )。例外のタイプは定義されていません。
  
-Request handlers using this standard MUST implement the following interface: +この規約を使用するリクエストハンドラは、次のインターフェースを実装する必要があります( ''MUST'' ):
- +
-この規約を使用するリクエストハンドラは、次のインターフェースを実装する必要があります( ''MUST'' ):+
  
   * ''Psr\Http\Server\RequestHandlerInterface''   * ''Psr\Http\Server\RequestHandlerInterface''
行 84: 行 70:
 ==== 1.2 ミドルウェア ==== ==== 1.2 ミドルウェア ====
  
-A middleware component is an individual component participating, often together with other middleware components, in the processing of an incoming request and the creation of a resulting response, as defined by PSR-7. +ミドルウェアコンポーネントは個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。
- +
-ミドルウェアコンポーネントは個別のコンポーネントですが、PSR-7で定義されているように、着信要求の処理と結果応答の作成に他のミドルウェアコンポーネントと一緒に参加することが多いです。 +
- +
-A middleware component MAY create and return a response without delegating to a request handler, if sufficient conditions are met.+
  
 ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( ''MAY'' )。 ミドルウェアコンポーネントは、十分な条件が満たされている場合、リクエストハンドラーに委任することなく応答を作成して返すことができます( ''MAY'' )。
- 
-Middleware using this standard MUST implement the following interface: 
  
 この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( ''MUST'' ): この規約を使用するミドルウェアは、次のインターフェースを実装する必要があります( ''MUST'' ):
行 102: 行 82:
 ==== 1.3 レスポンスの生成 ==== ==== 1.3 レスポンスの生成 ====
  
-It is RECOMMENDED that any middleware or request handler that generates a response will either compose a prototype of a PSR-7 ResponseInterface or a factory capable of generating a ResponseInterface instance in order to prevent dependence on a specific HTTP message implementation. +応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の ''ResponseInterface'' プロトタイプ または ''ResponseInterface'' インスタンスを生成できるファクトリーを構成することをお勧めします( ''RECOMMENDED'' )。それは、特定のHTTPメッセージの実装への依存を防ぐためです。
- +
-応答を生成するミドルウェアまたはリクエストハンドラーは、PSR-7の ''ResponseInterface'' プロトタイプまたは ''ResponseInterface'' インスタンスを生成できるファクトリーを構成することをお勧めします( ''RECOMMENDED'' )。それは、特定のHTTPメッセージの実装への依存を防ぐためです。+
  
 \\ \\
行 110: 行 88:
 ==== 1.4 例外のハンドリング ==== ==== 1.4 例外のハンドリング ====
  
-It is RECOMMENDED that any application using middleware includes a component that catches exceptions and converts them into responses. This middleware SHOULD be the first component executed and wrap all further processing to ensure that a response is always generated. +ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( ''RECOMMENDED'' )。このミドルウェアは、最初に実行されるコンポーネントであり、ての他の処理をラップすべきです( ''SHOULD'' )。それは、レスポンスが常に生成されることを保証するためです。
- +
-ミドルウェアを使用するアプリケーションは、例外をキャッチしてそれらをレスポンスに変換するコンポーネントを含むことが推奨されます( ''RECOMMENDED'' )。このミドルウェアは、最初に実行されるコンポーネントであり、すべての他の処理をラップすべきです( ''SHOULD'' )。それは、レスポンスが常に生成されることを保証するためです。+
  
 \\ \\
行 120: 行 96:
 ==== 2.1 Psr\Http\Server\RequestHandlerInterface ==== ==== 2.1 Psr\Http\Server\RequestHandlerInterface ====
  
-The following interface MUST be implemented by request handlers. +リクエストハンドラは次のインターフェースを実装する必要があります( ''MUST'' )。
- +
-リクエストハンドラは次のインターフェースを実装する必要があります( ''MUST'' )。+
  
 <code php RequestHandlerInterface.php> <code php RequestHandlerInterface.php>
行 131: 行 105:
  
 /** /**
- * Handles a server request and produces a response. 
  * サーバーリクエストを処理し、レスポンスを生成します。  * サーバーリクエストを処理し、レスポンスを生成します。
  *  *
- * An HTTP request handler process an HTTP request in order to produce an 
- * HTTP response. 
  * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。  * HTTPリクエストハンドラーは、HTTPレスポンスを生成するためにHTTPリクエストを処理します。
  */  */
行 141: 行 112:
 { {
     /**     /**
-     * Handles a request and produces a response. 
      * リクエストを処理し、レスポンスを生成します。      * リクエストを処理し、レスポンスを生成します。
      *      *
-     * May call other collaborating code to generate the response. 
      * レスポンスを生成するために、他の協調するコードを呼び出すことができます。      * レスポンスを生成するために、他の協調するコードを呼び出すことができます。
      */      */
行 154: 行 123:
  
 ==== 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.1595903907.txt.gz · 最終更新: 2020/07/28 11:38 by tanaka