4

我有奇怪的问题。

当我@return Model\Article在模型加载方法中使用时,我会在 Eclipse 的自动完成中看到模型的方法。

模型加载方法返回更多对象,所以我想要它@return My\BaseModel,然后/* @var $model Model\Article */专门为每个模型放置(当我使用它时)。

问题是@return Model\Article效果很好(我看到Model\Article+My\BaseModel方法)但另一种方式(@return My\BaseModel和 inline /*...*/)没有 - 它说'没有可用的完成'。

我试图在 之前和之后放置内联注释$model = ...;,但都没有奏效。

我很抱歉我的英语不好 - 我希望你能理解。

感谢您的任何帮助,最好的问候,Jakub Chábek。

4

2 回答 2

5

编年史:我们做错了什么...

全部:这是具有相同问题的错误报告,但已解决-我尝试过并且有效!

这是工作示例:

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 回答