プロパティのサブクラスを返すメソッド @returns
<p>抽象クラス <code>Foo</code> と抽象ビルダー <code>FooBuilder</code></p> があります。
<pre class="brush:php;toolbar:false;">抽象クラス Foo {
}
抽象クラス FooBuilder {
保護された Foo $model;
/*** クラスインスタンスを返す
*
* @return Model //正しい戻り値の型は何ですか? ?*/
パブリック関数 get()
{
$this->モデルを返す;
}
}
</pre>
<p>子ビルダーで <code>get()</code> メソッドを使用したいのですが、戻り値の型が抽象 <code>Foo</code> ではなくサブクラスであることが IDE によって検出されます。 。 </p>
<pre class="brush:php;toolbar:false;">class Bar extends Foo {
}
抽象クラス BarBuilder {
パブリック関数 __construct()
{
$this->model = new Bar();
}
}
$barBuilder = BarBuilder();
$bar = $barBuilder->get(); //タイプは「Bar」ですが、IDE はそれを「Foo」と認識します
</pre>
<p>PHPDoc でクラスの代わりにプロパティの静的型を返す方法はありますか? <code>@return static($this->model)</code>に似ていますか? </p>
<p>一例は、<code>SomeModel::find()</code> での Laravel の Eloquent の使用法です。 IDE は、タイプが <code>SomeModel</code> である可能性があることを認識しています。ただし、<code>@return</code> には <code>Model</code> しかありません。 </p>