このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
psr:psr5 [2020/05/18 17:30] y2sunlight [キーワード] |
psr:psr5 [2020/09/01 10:11] y2sunlight |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > | ||
- | |||
- | ----- | ||
- | |||
====== PSR-5: PHPDoc Standard(Draft) ====== | ====== PSR-5: PHPDoc Standard(Draft) ====== | ||
--- // | --- // | ||
- | 本章は、若干の補足を加筆してはいるものの単に[[https:// | + | 本章は、若干の補足を加筆してはいるものの単に[[https:// |
+ | |||
+ | 関連記事 | ||
- | ==== 目次 ==== | + | |
- | | + | |
* [[psr: | * [[psr: | ||
* [[psr: | * [[psr: | ||
行 16: | 行 13: | ||
* PSR-5: PHPDoc Standard(Draft) - PHPDoc規約 | * PSR-5: PHPDoc Standard(Draft) - PHPDoc規約 | ||
* [[psr: | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
+ | * [[psr: | ||
\\ | \\ | ||
行 411: | 行 418: | ||
===== 付録A. タイプ ====== | ===== 付録A. タイプ ====== | ||
- | ===== ABNF ===== | + | ==== ABNF ==== |
タイプには次の[[https:// | タイプには次の[[https:// | ||
行 427: | 行 434: | ||
\\ | \\ | ||
- | ===== 詳細 | + | ==== 詳細 ==== |
'' | '' | ||
行 446: | 行 453: | ||
\\ | \\ | ||
- | ===== 配列 | + | ==== 配列 ==== |
'' | '' | ||
行 456: | 行 463: | ||
\\ | \\ | ||
- | ===== 有効なクラス名 | + | ==== 有効なクラス名 ==== |
有効なクラス名は、タイプが言及しているコンテキストに基づいて参照されます。従って、これは完全修飾クラス名(FQCN)であるか。または名前空間内に存在ローカル名であるかのいずれかになります。 | 有効なクラス名は、タイプが言及しているコンテキストに基づいて参照されます。従って、これは完全修飾クラス名(FQCN)であるか。または名前空間内に存在ローカル名であるかのいずれかになります。 | ||
行 470: | 行 477: | ||
\\ | \\ | ||
- | ===== キーワード | + | ==== キーワード ==== |
キーワードは、タイプの目的を定義します。すべての要素がクラスによって決められているわけではなく、開発者が '' | キーワードは、タイプの目的を定義します。すべての要素がクラスによって決められているわけではなく、開発者が '' | ||
行 536: | 行 543: | ||
</ | </ | ||
- **callable**:このタイプが適用される要素は、関数呼び出しへのポインターです。これは、PHPの定義による呼び出し可能('' | - **callable**:このタイプが適用される要素は、関数呼び出しへのポインターです。これは、PHPの定義による呼び出し可能('' | ||
- | - **self**:この型が適用される要素は、ドキュメント化された要素がもともと含まれていたのと同じクラスです。\\ \\ **例:** | + | - **self**:この型が適用される要素は、ドキュメント化された要素がもともと含まれていたのと同じクラスです。< |
+ | === 例: === | ||
> メソッド c はクラス A に含まれています。**DocBlock** は、戻り値の型が **self** であることを示しています。そのため、メソッド c はクラス A のインスタンスを返します。 | > メソッド c はクラス A に含まれています。**DocBlock** は、戻り値の型が **self** であることを示しています。そのため、メソッド c はクラス A のインスタンスを返します。 | ||
これは、継承が関与しているときに混乱する状況につながる可能性があります。 | これは、継承が関与しているときに混乱する状況につながる可能性があります。 | ||
- | </div> \\ \\ **例:**\\ \\ <div indent> | + | === 例(前の例の状況が引き続き適用されます): === |
- | > aaaa | + | |
+ | > クラス B はクラス A を拡張し、メソッドcを再定義しません。そのため、クラス B からメソッド c を呼び出すことができます。 | ||
+ | |||
+ | この状況では、**self** がクラス A または B のいづれかとして解釈されるため、あいまいさが生じる可能性があります。これらの場合、**self** は、**self** タイプを含む **DocBlock** が記述されているクラスのインスタンスであると解釈しなければなりません ('' | ||
+ | |||
+ | 上記の例で、**self** はクラス A のメソッド c で定義されているため、常にクラスAを参照する必要があります('' | ||
+ | |||
+ | > 上記の性質により、この情報を収集し形成化するアプリケーションでは、クラスの各表現とともに子クラスのリストを表示することをお勧めします ('' | ||
</ | </ | ||
- | - **static**: | + | - **static**:この型が適用される要素は、ドキュメント化された要素が含まれているのと同じクラスであるか、またはサブクラスで見つかった場合、元のクラスではなくそのサブクラスの型です。\\ \\ このキーワードは、PHPで定義されている(静的メソッドやプロパティ、または変数修飾子でもない)[[https:// |
- | - **$this**: | + | - **$this**:このタイプが適用される要素は、与えられたコンテキストの現在のクラスとまったく同じインスタンスです。そのため、返されるインスタンスは同じクラスだけでなく同じインスタンスでなければならないので、このタイプは static のより厳密なバージョンという事になります。\\ \\ このタイプは、[[https:// |
\\ | \\ | ||