このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
psr:psr13 [2020/07/20 07:15] y2sunlight [1.4 リンクテンプレート] |
psr:psr13 [2020/07/20 08:22] y2sunlight [3.1 Psr\Link\LinkInterface] |
||
---|---|---|---|
行 105: | 行 105: | ||
\\ | \\ | ||
- | ==== 1.5 発展的プロバイダー ==== | + | ==== 1.5 進化可能なプロバイダー ==== |
- | In some cases, a Link Provider may need the ability to have additional links added to it. In others, a link provider is necessarily read-only, with links derived at runtime from some other data source. For that reason, modifiable providers are a secondary interface that may optionally be implemented. | + | 場合によっては、リンクプロバイダーは追加されたリンクを持つ機能が必要になることがあります。他の場合では、リンクプロバイダーは必ず読み取り専用であり、実行時に他のデータソースからリンクが派生します。そのため、変更可能なプロバイダーは、オプションで実装できるセカンダリーインターフェースとなります。 |
- | + | ||
- | 場合によっては、リンクプロバイダーは追加されたリンクを持つ機能が必要になることがあります。他の場合では、リンクプロバイダーは必ず読み取り専用であり、実行時に他のデータソースからリンクが派生します。そのため、変更可能なプロバイダーは、オプションで実装できるセカンダリインターフェースとなります。 | + | |
- | + | ||
- | Additionally, | + | |
さらに、PSR-7 Responseオブジェクトの様ないくつかのリンクプロバイダーオブジェクトは、設計上不変です。つまり、それらへのリンクをインプレースで追加するメソッドには互換性がありません。従って、'' | さらに、PSR-7 Responseオブジェクトの様ないくつかのリンクプロバイダーオブジェクトは、設計上不変です。つまり、それらへのリンクをインプレースで追加するメソッドには互換性がありません。従って、'' | ||
行 117: | 行 113: | ||
\\ | \\ | ||
- | ==== 1.6 発展的リンクオブジェクト ==== | + | ==== 1.6 進化可能なリンクオブジェクト ==== |
- | + | ||
- | Link objects are in most cases value objects. As such, allowing them to evolve in the same fashion as PSR-7 value objects is a useful option. For that reason, an additional EvolvableLinkInterface is included that provides methods to produce new object instances with a single change. The same model is used by PSR-7 and, thanks to PHP’s copy-on-write behavior, is still CPU and memory efficient. | + | |
- | + | ||
- | リンクオブジェクトは、ほとんどの場合値オブジェクトです。そのため、PSR-7値オブジェクトと同じ方法でそれらを発展させることは、有用なオプションです。そのため、1回の変更で新しいオブジェクトインスタンスを生成するメソッドを提供するEvolvableLinkInterfaceが追加されています。同じモデルがPSR-7で使用されており、PHPのcopy-on-write動作のおかげで、CPUとメモリの効率が向上しています。 | + | |
- | There is no evolvable method for templated values, however, as the templated value of a link is based exclusively | + | リンクオブジェクトは、ほとんどの場合、値オブジェクトです。そのため、PSR-7の値オブジェクトと同じ方法でそれらを進化させることは、有用なオプションです。そのため、1回の変更で新しいオブジェクトインスタンスを生成するメソッドを提供する EvolvableLinkInterface が追加されています。同じモデルが PSR-7 で使用されており、PHP の copy-on-write 動作のおかげで、CPUとメモリの効率が向上しています。 |
- | ただし、リンクのテンプレート値はhref値にのみ基づいているので、テンプレート値に対しては発展的な方法はありません。それは、独自に設定することはできませんが( '' | + | ただし、リンクのテンプレート値は href 値にのみ基づいているので、テンプレート値に対しては進化可能な方法はありません。それは、独自に設定することはできませんが( '' |
\\ | \\ | ||
行 133: | 行 125: | ||
The interfaces and classes described are provided as part of the psr/link package. | The interfaces and classes described are provided as part of the psr/link package. | ||
- | 説明されているインターフェースとクラスは、[[https:// | + | 説明されているインターフェースとクラスは、[[https:// |
\\ | \\ | ||
行 147: | 行 139: | ||
/** | /** | ||
- | * A readable link object. | ||
* 読み取り可能なリンクオブジェクト。 | * 読み取り可能なリンクオブジェクト。 | ||
*/ | */ | ||
行 153: | 行 144: | ||
{ | { | ||
/** | /** | ||
- | * Returns the target of the link. | ||
* リンクのターゲットを返します。 | * リンクのターゲットを返します。 | ||
* | * | ||
- | * The target link must be one of: | ||
- | * - An absolute URI, as defined by RFC 5988. | ||
- | * - A relative URI, as defined by RFC 5988. The base of the relative link | ||
- | | ||
- | * - A URI template as defined by RFC 6570. | ||
* | * | ||
* ターゲットリンクは次のいずれかである必要があります。 | * ターゲットリンクは次のいずれかである必要があります。 | ||
- | * -RFC 5988で定義されている絶対URI。 | + | * - RFC 5988で定義されている絶対URI。 |
- | * -RFC 5988で定義されている相対URI。相対リンクのベースは、クライアントによるコンテキストに | + | * - RFC 5988で定義されている相対URI。相対リンクのベースは、クライアントによるコンテキストに |
- | | + | |
- | * -RFC 6570で定義されているURIテンプレート。 | + | * - RFC 6570で定義されているURIテンプレート。 |
* | * | ||
- | * If a URI template is returned, isTemplated() MUST return True. | ||
* URIテンプレートが返される場合、isTemplated()はTrueを返さなければなりません (MUST) | * URIテンプレートが返される場合、isTemplated()はTrueを返さなければなりません (MUST) | ||
* | * | ||
行 176: | 行 160: | ||
/** | /** | ||
- | * Returns whether or not this is a templated link. | ||
* これがテンプレートリンクかどうかを返します。 | * これがテンプレートリンクかどうかを返します。 | ||
* | * | ||
* @return bool | * @return bool | ||
- | | ||
| | ||
*/ | */ | ||
行 186: | 行 168: | ||
/** | /** | ||
- | * Returns the relationship type(s) of the link. | ||
* リンクの関係タイプを返します。 | * リンクの関係タイプを返します。 | ||
* | * | ||
- | * This method returns 0 or more relationship types for a link, expressed | + | * このメソッドは、リンクに対し0個以上の関係タイプを文字列の配列として返します。 |
- | * as an array of strings. | + | |
- | * このメソッドは、リンクの0以上の関係タイプを文字列の配列として返します。 | + | |
* | * | ||
* @return string[] | * @return string[] | ||
行 198: | 行 177: | ||
/** | /** | ||
- | * Returns a list of attributes that describe the target URI. | ||
* ターゲットURIを説明する属性のリストを返します。 | * ターゲットURIを説明する属性のリストを返します。 | ||
* | * | ||
* @return array | * @return array | ||
- | | ||
- | | ||
- | | ||
| | ||
| |