4

奇妙な問題があります。

モデル読み込みメソッドで使用する@return Model\Articleと、Eclipse のオートコンプリートでモデルのメソッドが表示されます。

モデル読み込みメソッドはより多くのオブジェクトを返すので、それが必要で@return My\BaseModelあり/* @var $model Model\Article */、各モデルを具体的に (使用するときに) 配置します。

問題は、@return Model\Articleうまく機能することです ( Model\Article+My\BaseModelメソッドが表示されます) が、他の方法 (@return My\BaseModelおよび inline /*...*/) は機能しません。「利用可能な補完がありません」と表示されます。

の前後にインラインコメントを配置しようとしました$model = ...;が、どちらも機能しませんでした。

下手な英語で申し訳ありません。ご理解いただければ幸いです。

よろしくお願いします、ヤクブ・チャベク。

4

2 に答える 2

5

Chronial: 私たちは何か間違ったことをしました...

すべて: ここに同じ問題のバグ レポートがありますが、解決されました。

これが実際の例です:

namespace test {
    class AAA {

        /**
         * 
         * @return \test\AAA
         */
        static function getInstance() {
            return new static ();
        }
    }
}
namespace test2 {
    class BBB extends \test\AAA {
        /**
         * 
         * @return \test2\BBB
         */
        function showme() {
        }
    }
}

namespace test3 {
    $aaa = \test2\BBB::getInstance ();
    /* @var $aaa \test2\BBB */
    $aaa->
}

したがって、私の側に間違いがあるに違いありません...しかし、実際にはそれを見つけることができません:D

于 2011-08-13T14:45:30.527 に答える
4

私も以前それで悩んだことがあります。簡単でクリーンな解決策は見つかりませんでした。コード補完がどうしても必要な場合は、到達することのない位置に代入を配置します。

if (false) $myVar = new MyClass();

Eclipse は、このコードが決して実行されないことを認識せず、適切なコード補完を提供します。

于 2011-08-13T00:32:41.770 に答える