Завершение Eclipse - вопрос @var (PHPDoc) - PullRequest
4 голосов
/ 10 августа 2011

У меня странная проблема.

Когда я использую @return Model\Article в методе загрузки модели, я вижу методы модели в автозаполнении Eclipse.

Метод загрузки модели возвращает большеобъекты, поэтому я хочу, чтобы он @return My\BaseModel, а затем поставить /* @var $model Model\Article */ для каждой модели специально (когда я его использую).

Проблема в том, что @return Model\Article работает хорошо (я вижу Model\Article +My\BaseModel методов), но другой способ (@return My\BaseModel и inline /*...*/) не делает - он говорит ' Нет доступных завершений '.

Я пытался разместить встроенный комментарийдо и после $model = ...;, но ни один из них не работал.

Извините за мой плохой английский - надеюсь, вы понимаете.

Спасибо за любую помощь, с наилучшими пожеланиями, ЯкубChábek.

Ответы [ 2 ]

5 голосов
/ 13 августа 2011

Хрониал: мы сделали что-то не так ...

Все: вот отчет об ошибке с той же проблемой, но она решена - я попробовал, и она работает!

Вот рабочий пример:

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

4 голосов
/ 13 августа 2011

У меня с этим тоже были проблемы.Никогда не находил легкого и чистого решения.Когда вы действительно отчаянно нуждаетесь в завершении кода, поместите назначение в положение, которое никогда не будет достигнуто:

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

Eclipse не поймет, что этот код никогда не будет выполнен, и даст вам соответствующее завершение кода.

...