現在のオブジェクトを返すメソッドがありますが、これをどのように文書化しますか?
/**
* set something
*
* @return this
*/
public function setSomething(){
// ...
return $this;
}
それとも私は@return self
または@return Current_Class_Name
?
この質問が「主に意見に基づいた」ものではない理由(および再度開く必要がある理由):標準への準拠およびIDEタイプのヒントのサポート。
@return Current_Class_Name
は確実に機能し、私が好むものです。
@return self
は、一部のプログラムでも動作する場合があります。
@return this
はタイプ名ではないため、不正です。
PHP Standards Recommendation(PSR) は現在ドラフトにあります (PSR-5)提案@ return $ thisは、同じインスタンスが返されることを示すために使用されます。
$ this、このタイプが適用される要素は、指定されたコンテキストの現在のクラスとまったく同じインスタンスです。そのため、返されるインスタンスは同じクラスだけでなく同じインスタンスでなければならないため、このタイプはstaticのより厳密なバージョンです。
このタイプは、Fluent Interfaceデザインパターンを実装するメソッドの戻り値としてよく使用されます。
この表記は現在、PhpStormやNetbeansなどの一般的なIDEで使用されています。
/**
* set something
*
* @return self
*/
public function setSomething(){
// ...
return $this;
}
「セルフ」タイプは@paramまたは@returnとして使用できます。
PHPDocは、オブジェクト内の自己を参照するために「自己」を推奨しています。
ソース: http://www.phpdoc.org/docs/latest/references/phpdoc/types.html
この質問はかなり古いですが、私は皆に共有したいだけです!
AT LEASTNetBeans 8.1 ..この表記はコードのオートコンプリートがうまく機能する = IDEで:
/**
* Method that returns $this instance (using late state binding)
* @return static
*/
public function iWillReturnMyself ( ) {
return $this;
}
NetBeans8.1ユーザーの場合、AT LEASTと言いますが、は動作する可能性があります古いバージョンや他のIDEも=)