このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
psr:psr17 [2020/08/18 10:51] tanaka [2.2 ResponseFactoryInterface] |
psr:psr17 [2020/09/01 11:54] (現在) tanaka [PSR-17: HTTP Factories] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | > 編集中 | ||
| - | |||
| ====== PSR-17: HTTP Factories ====== | ====== PSR-17: HTTP Factories ====== | ||
| - | --- // | + | --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-28// |
| 本章は、若干の補足を加筆してはいるものの単に[[https:// | 本章は、若干の補足を加筆してはいるものの単に[[https:// | ||
| 行 24: | 行 22: | ||
| * PSR-17: HTTP Factories - HTTPファクトリー | * PSR-17: HTTP Factories - HTTPファクトリー | ||
| * [[psr: | * [[psr: | ||
| - | * [[psr: | + | * [[psr: |
| ----- | ----- | ||
| 行 31: | 行 29: | ||
| --- // 原文より翻訳 [[https:// | --- // 原文より翻訳 [[https:// | ||
| - | |||
| - | 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”, | ||
| このドキュメントのキーワード '' | このドキュメントのキーワード '' | ||
| 行 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ファクトリーは、パッケージによって提供されるそれぞれのオブジェクトタイプごとにこれらのインターフェースを実装する必要があります( '' | HTTPファクトリーは、PSR-7で定義されている新しいHTTPオブジェクトを作成するためのメソッドです。HTTPファクトリーは、パッケージによって提供されるそれぞれのオブジェクトタイプごとにこれらのインターフェースを実装する必要があります( '' | ||
| 行 66: | 行 54: | ||
| ===== 2. インターフェース ====== | ===== 2. インターフェース ====== | ||
| - | |||
| - | The following interfaces MAY be implemented together within a single class or in separate classes. | ||
| 以下のインターフェースは、単一のクラスまたは別々のクラスで一緒に実装される場合があります( '' | 以下のインターフェースは、単一のクラスまたは別々のクラスで一緒に実装される場合があります( '' | ||
| 行 74: | 行 60: | ||
| ==== 2.1 RequestFactoryInterface ===== | ==== 2.1 RequestFactoryInterface ===== | ||
| - | |||
| - | Has the ability to create client requests. | ||
| このインターフェースはクライアント要求を作成する機能があります。 | このインターフェースはクライアント要求を作成する機能があります。 | ||
| 行 88: | 行 72: | ||
| { | { | ||
| /** | /** | ||
| - | * Create a new request. | ||
| * 新しいリクエストを作成します。 | * 新しいリクエストを作成します。 | ||
| * | * | ||
| - | * @param string $method | + | * @param string $method リクエストに関連付けられたHTTPメソッド。 |
| - | | + | * @param UriInterface|string $uri リクエストに関連付けられたURI。 |
| - | * @param UriInterface|string $uri The URI associated with the request. | + | |
| - | | + | |
| */ | */ | ||
| 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です。 |
| - | | + | * @param string $reasonPhrase 生成された応答のステータスコードに関連付ける理由フレーズ。 |
| - | * @param string $reasonPhrase | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| */ | */ | ||
| public function createResponse(int $code = 200, string $reasonPhrase = '' | public function createResponse(int $code = 200, string $reasonPhrase = '' | ||
| 行 135: | 行 108: | ||
| ==== 2.3 ServerRequestFactoryInterface ===== | ==== 2.3 ServerRequestFactoryInterface ===== | ||
| + | |||
| + | このインターフェースはサーバー要求を作成する機能があります。 | ||
| <code php ServerRequestFactoryInterface.php> | <code php ServerRequestFactoryInterface.php> | ||
| + | namespace Psr\Http\Message; | ||
| + | |||
| + | use Psr\Http\Message\ServerRequestInterface; | ||
| + | use Psr\Http\Message\UriInterface; | ||
| + | |||
| + | interface ServerRequestFactoryInterface | ||
| + | { | ||
| + | /** | ||
| + | * 新しいサーバーリクエストを作成します。 | ||
| + | * | ||
| + | * サーバーパラメータは指定されたとおりに正確に取得されることに注意してください。 | ||
| + | * 指定された値の解析/ | ||
| + | * URIを決定する試みは行われません。 | ||
| + | * | ||
| + | * @param string $method リクエストに関連付けられたHTTPメソッド。 | ||
| + | * @param UriInterface|string $uri リクエストに関連付けられたURI。 | ||
| + | * @param array $serverParams 生成されたリクエストのインスタンスをシードするサーバーAPI(SAPI)パラメーターの配列。 | ||
| + | */ | ||
| + | public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface; | ||
| + | } | ||
| </ | </ | ||
| 行 142: | 行 137: | ||
| ==== 2.4 StreamFactoryInterface ===== | ==== 2.4 StreamFactoryInterface ===== | ||
| + | |||
| + | このインターフェースはリクエストとレスポンスのストリームを作成する機能があります。 | ||
| <code php StreamFactoryInterface.php> | <code php StreamFactoryInterface.php> | ||
| + | namespace Psr\Http\Message; | ||
| + | |||
| + | use Psr\Http\Message\StreamInterface; | ||
| + | |||
| + | interface StreamFactoryInterface | ||
| + | { | ||
| + | /** | ||
| + | * 文字列から新しいストリームを作成します。 | ||
| + | * | ||
| + | * ストリームは一時的なリソースで作成する必要があります。 | ||
| + | * | ||
| + | * @param string $content ストリームに入力する文字列コンテンツ。 | ||
| + | */ | ||
| + | public function createStream(string $content = '' | ||
| + | |||
| + | /** | ||
| + | * 既存のファイルからストリームを作成します。 | ||
| + | * | ||
| + | * ファイルは与えられたモードを使って開かれなければなりません。 | ||
| + | * これは `fopen`関数でサポートされているどのモードでもかまいません。 | ||
| + | * | ||
| + | * `$filename`は`fopen()`でサポートされている任意の文字列にすることができます。 | ||
| + | * | ||
| + | * @param string $filename ストリームの基礎として使用するファイル名またはストリームURI。 | ||
| + | * @param string $mode 基本となるファイル名/ | ||
| + | * | ||
| + | * @throws \RuntimeException ファイルを開けない場合。 | ||
| + | * @throws \InvalidArgumentException モードが無効な場合。 | ||
| + | */ | ||
| + | public function createStreamFromFile(string $filename, string $mode = ' | ||
| + | |||
| + | /** | ||
| + | * 既存のリソースから新しいストリームを作成します。 | ||
| + | * | ||
| + | * ストリームは読み取り可能でなければならず、書き込み可能である必要があります。 | ||
| + | * | ||
| + | * @param resource $resource ストリームのベースとして使用するPHPリソース。 | ||
| + | */ | ||
| + | public function createStreamFromResource($resource): | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | このインターフェースの実装では、文字列からリソースを作成するときに一時ストリームを使用すべきです( '' | ||
| + | |||
| + | <code php> | ||
| + | $resource = fopen(' | ||
| </ | </ | ||
| 行 149: | 行 192: | ||
| ==== 2.5 UploadedFileFactoryInterface ===== | ==== 2.5 UploadedFileFactoryInterface ===== | ||
| + | |||
| + | このインターフェースはアップロードされたファイルのストリームを作成する機能があります。 | ||
| <code php UploadedFileFactoryInterface.php> | <code php UploadedFileFactoryInterface.php> | ||
| + | namespace Psr\Http\Message; | ||
| + | |||
| + | use Psr\Http\Message\StreamInterface; | ||
| + | use Psr\Http\Message\UploadedFileInterface; | ||
| + | |||
| + | interface UploadedFileFactoryInterface | ||
| + | { | ||
| + | /** | ||
| + | * 新しいアップロードファイルを作成します。 | ||
| + | * | ||
| + | * サイズが指定されていない場合は、ストリームのサイズを確認することによって決定されます。 | ||
| + | * | ||
| + | * @link http:// | ||
| + | * @link http:// | ||
| + | * | ||
| + | * @param StreamInterface $stream アップロードされたファイルコンテンツを表す基になるストリーム。 | ||
| + | * @param int $size ファイルのサイズ(バイト単位)。 | ||
| + | * @param int $error PHPファイルのアップロードエラー。 | ||
| + | * @param string $clientFilename クライアントが提供するファイル名(存在する場合)。 | ||
| + | * @param string $clientMediaType クライアントが提供するメディアタイプ(存在する場合)。 | ||
| + | * | ||
| + | * @throws \InvalidArgumentException ファイルリソースが読み取り可能でない場合。 | ||
| + | */ | ||
| + | public function createUploadedFile( | ||
| + | StreamInterface $stream, | ||
| + | int $size = null, | ||
| + | int $error = \UPLOAD_ERR_OK, | ||
| + | string $clientFilename = null, | ||
| + | string $clientMediaType = null | ||
| + | ): UploadedFileInterface; | ||
| + | } | ||
| </ | </ | ||
| 行 156: | 行 232: | ||
| ==== 2.6 UriFactoryInterface ===== | ==== 2.6 UriFactoryInterface ===== | ||
| + | |||
| + | このインターフェースはクライアントとサーバーのリクエストに対するURIを作成する機能があります。 | ||
| <code php UriFactoryInterface.php> | <code php UriFactoryInterface.php> | ||
| + | namespace Psr\Http\Message; | ||
| + | |||
| + | use Psr\Http\Message\UriInterface; | ||
| + | |||
| + | interface UriFactoryInterface | ||
| + | { | ||
| + | /** | ||
| + | * 新しいURIを作成します。 | ||
| + | * | ||
| + | * @param string $uri 解析するURI。 | ||
| + | * | ||
| + | * @throws \InvalidArgumentException 指定されたURIを解析できない場合。 | ||
| + | */ | ||
| + | public function createUri(string $uri = '' | ||
| + | } | ||
| </ | </ | ||
| \\ | \\ | ||