7

PhpStorm でオブジェクトを作成すると、そのオブジェクトのすべてのオートコンプリートが正常に機能します。

$object = new MyClass();
$object->getNa...

にオートコンプリートします

$object->getName();

ここまでは順調ですが、最初のメソッドでオブジェクトが返された場合、オートコンプリートは機能しません。

$car->getDriver()->getNam...

空のリストが表示されます。getDriver メソッドには PHPDoc @return タグが「Driver」に設定されていますが、他のいくつかの IDE では、これは正しいオートコンプリートを取得するために機能します。

どこかに見逃した設定があるのか​​、それとも PhpStorm がこの種の高度なオートコンプリートをまだ提供していないのか疑問に思っていますか?

4

2 に答える 2

8

関数getDriver()には、戻り値 (関数の docblock) に適切な型ヒントが必要です。

  * @return classOrInterfaceName

これは通常、IDE を「より深く」するのに十分です。Phpstorm がそれをサポートしていると確信していますが、私は Phpstorm ユーザーではありません。

インターフェイス/クラスを含むファイルがプロジェクト内にあるか、プロジェクトを参照していることに注意してください。

回避策として、戻り値を変数に割り当て、その変数にタイプヒントを付けることができます。快適ではないかもしれませんが、役立つことがあります。

于 2011-10-01T11:08:46.947 に答える
3

すべてのプロジェクト ファイルでクラス Driver の定義が 1 つだけ存在することを確認してください。これは、PhpStorm の現在のバージョンにとって重要です。

http://youtrack.jetbrains.net/issue/WI-2202およびhttp://youtrack.jetbrains.net/issue/WI-2760を参照してください。

于 2011-10-05T13:38:38.060 に答える