Ground Sunlight

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

ユーザ用ツール

サイト用ツール


psr:psr17

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
psr:psr17 [2020/08/18 11:17]
tanaka [2.5 UploadedFileFactoryInterface]
psr:psr17 [2020/09/01 11:54] (現在)
tanaka [PSR-17: HTTP Factories]
行 1: 行 1:
-> 編集中 
- 
 ====== PSR-17: HTTP Factories ====== ====== PSR-17: HTTP Factories ======
  
行 24: 行 22:
   * PSR-17: HTTP Factories - HTTPファクトリー   * PSR-17: HTTP Factories - HTTPファクトリー
   * [[psr:psr18|PSR-18: HTTP Client - HTTPクライアント]]    * [[psr:psr18|PSR-18: HTTP Client - HTTPクライアント]] 
-  * [[psr:psr19|PSR-19: PHPDoc tags - PHPDocタグ]] +  * [[psr:psr19|PSR-19: PHPDoc tags(Draft) - PHPDocタグ]] 
  
 ----- -----
行 31: 行 29:
  
  --- // 原文より翻訳 [[https://www.php-fig.org/psr/psr-17/|PSR-17: HTTP HTTP Factories]] 2020-08-17 現在 //  --- // 原文より翻訳 [[https://www.php-fig.org/psr/psr-17/|PSR-17: HTTP HTTP Factories]] 2020-08-17 現在 //
- 
-This document describes a common standard for factories that create PSR-7 compliant HTTP objects. 
  
 このドキュメントでは、PSR-7準拠のHTTPオブジェクトを作成するファクトリーの一般的な規約について説明します。 このドキュメントでは、PSR-7準拠のHTTPオブジェクトを作成するファクトリーの一般的な規約について説明します。
- 
-PSR-7 did not include a recommendation on how to create HTTP objects, which leads to difficulties when needing to create new HTTP objects within components that are not tied to a specific implementation of PSR-7. 
  
 PSR-7には、HTTPオブジェクトの作成方法に関する推奨事項が含まれていなかったため、PSR-7の特定の実装に関連付けられていないコンポーネント内に新しいHTTPオブジェクトを作成する必要がある場合に問題が発生します。 PSR-7には、HTTPオブジェクトの作成方法に関する推奨事項が含まれていなかったため、PSR-7の特定の実装に関連付けられていないコンポーネント内に新しいHTTPオブジェクトを作成する必要がある場合に問題が発生します。
- 
-The interfaces outlined in this document describe methods by which PSR-7 objects can be instantiated. 
  
 このドキュメントで概説されているインターフェースは、PSR-7オブジェクトをインスタンス化できるメソッドについて説明しています。 このドキュメントで概説されているインターフェースは、PSR-7オブジェクトをインスタンス化できるメソッドについて説明しています。
- 
-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]]で説明されているように解釈して下さい。
行 58: 行 48:
  
 ===== 1. 仕様 ====== ===== 1. 仕様 ======
- 
-An HTTP factory is a method by which a new HTTP object, as defined by PSR-7, is created. HTTP factories MUST implement these interfaces for each object type that is provided by the package. 
  
 HTTPファクトリーは、PSR-7で定義されている新しいHTTPオブジェクトを作成するためのメソッドです。HTTPファクトリーは、パッケージによって提供されるそれぞれのオブジェクトタイプごとにこれらのインターフェースを実装する必要があります( ''MUST'' )。 HTTPファクトリーは、PSR-7で定義されている新しいHTTPオブジェクトを作成するためのメソッドです。HTTPファクトリーは、パッケージによって提供されるそれぞれのオブジェクトタイプごとにこれらのインターフェースを実装する必要があります( ''MUST'' )。
行 66: 行 54:
  
 ===== 2. インターフェース ====== ===== 2. インターフェース ======
- 
-The following interfaces MAY be implemented together within a single class or in separate classes. 
  
 以下のインターフェースは、単一のクラスまたは別々のクラスで一緒に実装される場合があります( ''MAY'' )。 以下のインターフェースは、単一のクラスまたは別々のクラスで一緒に実装される場合があります( ''MAY'' )。
行 74: 行 60:
  
 ==== 2.1 RequestFactoryInterface ===== ==== 2.1 RequestFactoryInterface =====
- 
-Has the ability to create client requests. 
  
 このインターフェースはクライアント要求を作成する機能があります。 このインターフェースはクライアント要求を作成する機能があります。
行 88: 行 72:
 { {
     /**     /**
-     * Create a new request. 
      * 新しいリクエストを作成します。      * 新しいリクエストを作成します。
      *      *
-     * @param string $method The HTTP method associated with the request. +     * @param string $method リクエストに関連付けられたHTTPメソッド。 
-                           リクエストに関連付けられたHTTPメソッド。 +     * @param UriInterface|string $uri リクエストに関連付けられたURI。
-     * @param UriInterface|string $uri The URI associated with the request.  +
-                                     リクエストに関連付けられたURI。+
      */      */
     public function createRequest(string $method, $uri): RequestInterface;     public function createRequest(string $method, $uri): RequestInterface;
行 103: 行 84:
  
 ==== 2.2 ResponseFactoryInterface ===== ==== 2.2 ResponseFactoryInterface =====
- 
-Has the ability to create responses. 
  
 このインターフェースは応答を作成する機能があります。 このインターフェースは応答を作成する機能があります。
行 116: 行 95:
 { {
     /**     /**
-     * Create a new response. 
      * 新しいレスポンスを作成します。      * 新しいレスポンスを作成します。
- 
      *      *
-     * @param int $code The HTTP status code. Defaults to 200. +     * @param int $code HTTPステータスコード。デフォルトは200です。 
-                      HTTPステータスコード。デフォルトは200です。 +     * @param string $reasonPhrase 生成された応答のステータスコードに関連付ける理由フレーズ。 
-     * @param string $reasonPhrase The reason phrase to associate with the status code +            何も提供されていない場合、実装はHTTP仕様で提案されているデフォルトを使用できます。
-         in the generated response. If none is provided, implementations MAY use +
-         the defaults as suggested in the HTTP specification. +
-         生成された応答のステータスコードに関連付ける理由フレーズ。 +
-         何も提供されていない場合、実装はHTTP仕様で提案されているデフォルトを使用できます。+
      */      */
     public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface;     public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface;
行 135: 行 108:
  
 ==== 2.3 ServerRequestFactoryInterface ===== ==== 2.3 ServerRequestFactoryInterface =====
- 
-Has the ability to create server requests. 
  
 このインターフェースはサーバー要求を作成する機能があります。 このインターフェースはサーバー要求を作成する機能があります。
行 149: 行 120:
 { {
     /**     /**
-     * Create a new server request. 
      * 新しいサーバーリクエストを作成します。      * 新しいサーバーリクエストを作成します。
      *      *
-     * Note that server parameters are taken precisely as given - no parsing/processing 
-     * of the given values is performed. In particular, no attempt is made to 
-     * determine the HTTP method or URI, which must be provided explicitly. 
      * サーバーパラメータは指定されたとおりに正確に取得されることに注意してください。      * サーバーパラメータは指定されたとおりに正確に取得されることに注意してください。
      * 指定された値の解析/処理は実行されません。特に、明示的に指定する必要があるHTTPメソッドまたは      * 指定された値の解析/処理は実行されません。特に、明示的に指定する必要があるHTTPメソッドまたは
      * URIを決定する試みは行われません。      * URIを決定する試みは行われません。
      *      *
-     * @param string $method The HTTP method associated with the request. +     * @param string $method リクエストに関連付けられたHTTPメソッド。 
-                           リクエストに関連付けられたHTTPメソッド。 +     * @param UriInterface|string $uri リクエストに関連付けられたURI。 
-     * @param UriInterface|string $uri The URI associated with the request.  +     * @param array $serverParams 生成されたリクエストのインスタンスをシードするサーバーAPI(SAPI)パラメーターの配列。
-                                     リクエストに関連付けられたURI。 +
-     * @param array $serverParams An array of Server API (SAPI) parameters with +
-         which to seed the generated request instance. +
-         生成されたリクエストのインスタンスをシードするサーバーAPI(SAPI)パラメーターの配列。+
      */      */
     public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface;     public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface;
行 174: 行 137:
  
 ==== 2.4 StreamFactoryInterface ===== ==== 2.4 StreamFactoryInterface =====
- 
-Has the ability to create streams for requests and responses. 
  
 このインターフェースはリクエストとレスポンスのストリームを作成する機能があります。 このインターフェースはリクエストとレスポンスのストリームを作成する機能があります。
行 187: 行 148:
 { {
     /**     /**
-     * Create a new stream from a string. 
      * 文字列から新しいストリームを作成します。      * 文字列から新しいストリームを作成します。
      *      *
-     * The stream SHOULD be created with a temporary resource. 
      * ストリームは一時的なリソースで作成する必要があります。      * ストリームは一時的なリソースで作成する必要があります。
      *      *
-     * @param string $content String content with which to populate the stream. +     * @param string $content ストリームに入力する文字列コンテンツ。
-                            ストリームに入力する文字列コンテンツ。+
      */      */
     public function createStream(string $content = ''): StreamInterface;     public function createStream(string $content = ''): StreamInterface;
  
     /**     /**
-     * Create a stream from an existing file. 
      * 既存のファイルからストリームを作成します。      * 既存のファイルからストリームを作成します。
      *      *
-     * The file MUST be opened using the given mode, which may be any mode 
-     * supported by the `fopen` function. 
      * ファイルは与えられたモードを使って開かれなければなりません。      * ファイルは与えられたモードを使って開かれなければなりません。
      * これは `fopen`関数でサポートされているどのモードでもかまいません。      * これは `fopen`関数でサポートされているどのモードでもかまいません。
      *      *
-     * The `$filename` MAY be any string supported by `fopen()`. 
      * `$filename`は`fopen()`でサポートされている任意の文字列にすることができます。      * `$filename`は`fopen()`でサポートされている任意の文字列にすることができます。
      *      *
-     * @param string $filename The filename or stream URI to use as basis of stream. +     * @param string $filename ストリームの基礎として使用するファイル名またはストリームURI。 
-                             ストリームの基礎として使用するファイル名またはストリームURI。 +     * @param string $mode 基本となるファイル名/ストリームを開くためのモード。
-     * @param string $mode The mode with which to open the underlying filename/stream. +
-                         基本となるファイル名/ストリームを開くためのモード。+
      *      *
-     * @throws \RuntimeException If the file cannot be opened. +     * @throws \RuntimeException ファイルを開けない場合。 
-                               ファイルを開けない場合。 +     * @throws \InvalidArgumentException モードが無効な場合。
-     * @throws \InvalidArgumentException If the mode is invalid. +
-                                       モードが無効な場合。+
      */      */
     public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface;     public function createStreamFromFile(string $filename, string $mode = 'r'): StreamInterface;
  
     /**     /**
-     * Create a new stream from an existing resource. 
      * 既存のリソースから新しいストリームを作成します。      * 既存のリソースから新しいストリームを作成します。
      *      *
-     * The stream MUST be readable and may be writable. +     * ストリームは読み取り可能でなければならず、書き込み可能である必要があります。
-     * ストリームは読み取り可能でなければならず、書き込み可能である必要があります(MUST)+
      *      *
-     * @param resource $resource The PHP resource to use as the basis for the stream. +     * @param resource $resource ストリームのベースとして使用するPHPリソース。
-                               ストリームのベースとして使用するPHPリソース。+
      */      */
     public function createStreamFromResource($resource): StreamInterface;     public function createStreamFromResource($resource): StreamInterface;
 } }
 </code> </code>
- 
-Implementations of this interface SHOULD use a temporary stream when creating resources from strings. The RECOMMENDED method for doing so is: 
  
 このインターフェースの実装では、文字列からリソースを作成するときに一時ストリームを使用すべきです( ''SHOULD'' )。 そのための推奨される方法は次のとおりです( ''RECOMMENDED'' ): このインターフェースの実装では、文字列からリソースを作成するときに一時ストリームを使用すべきです( ''SHOULD'' )。 そのための推奨される方法は次のとおりです( ''RECOMMENDED'' ):
行 247: 行 192:
  
 ==== 2.5 UploadedFileFactoryInterface ===== ==== 2.5 UploadedFileFactoryInterface =====
- 
-Has the ability to create streams for uploaded files. 
  
 このインターフェースはアップロードされたファイルのストリームを作成する機能があります。 このインターフェースはアップロードされたファイルのストリームを作成する機能があります。
行 261: 行 204:
 { {
     /**     /**
-     * Create a new uploaded file. 
      * 新しいアップロードファイルを作成します。      * 新しいアップロードファイルを作成します。
      *      *
-     * If a size is not provided it will be determined by checking the size of 
-     * the stream. 
      * サイズが指定されていない場合は、ストリームのサイズを確認することによって決定されます。      * サイズが指定されていない場合は、ストリームのサイズを確認することによって決定されます。
      *      *
行 271: 行 211:
      * @link http://php.net/manual/features.file-upload.errors.php      * @link http://php.net/manual/features.file-upload.errors.php
      *      *
-     * @param StreamInterface $stream The underlying stream representing the +     * @param StreamInterface $stream アップロードされたファイルコンテンツを表す基になるストリーム。 
-         uploaded file content. +     * @param int $size ファイルのサイズ(バイト単位)。 
-         アップロードされたファイルコンテンツを表す基になるストリーム。 +     * @param int $error PHPファイルのアップロードエラー。 
-     * @param int $size The size of the file in bytes. +     * @param string $clientFilename クライアントが提供するファイル名(存在する場合)。 
-                      ファイルのサイズ(バイト単位)。 +     * @param string $clientMediaType クライアントが提供するメディアタイプ(存在する場合)。
-     * @param int $error The PHP file upload error. +
-                       PHPファイルのアップロードエラー。 +
-     * @param string $clientFilename The filename as provided by the client, if any. +
-                                   クライアントが提供するファイル名(存在する場合)。 +
-     * @param string $clientMediaType The media type as provided by the client, if any. +
-                                    クライアントが提供するメディアタイプ(存在する場合)。+
      *      *
-     * @throws \InvalidArgumentException If the file resource is not readable. +     * @throws \InvalidArgumentException ファイルリソースが読み取り可能でない場合。
-                                       ファイルリソースが読み取り可能でない場合。+
      */      */
     public function createUploadedFile(     public function createUploadedFile(
行 299: 行 232:
  
 ==== 2.6 UriFactoryInterface ===== ==== 2.6 UriFactoryInterface =====
- 
-Has the ability to create URIs for client and server requests. 
  
 このインターフェースはクライアントとサーバーのリクエストに対するURIを作成する機能があります。 このインターフェースはクライアントとサーバーのリクエストに対するURIを作成する機能があります。
行 312: 行 243:
 { {
     /**     /**
-     * Create a new URI. 
      * 新しいURIを作成します。      * 新しいURIを作成します。
      *      *
-     * @param string $uri The URI to parse. +     * @param string $uri 解析するURI。
-                        解析するURI。+
      *      *
-     * @throws \InvalidArgumentException If the given URI cannot be parsed. +     * @throws \InvalidArgumentException 指定されたURIを解析できない場合。
-                                       指定されたURIを解析できない場合。+
      */      */
     public function createUri(string $uri = '') : UriInterface;     public function createUri(string $uri = '') : UriInterface;
psr/psr17.1597717068.txt.gz · 最終更新: 2020/08/18 11:17 by tanaka