子类上的Netbeans / PHP代码完成

时间:2014-06-18 19:35:18

标签: php netbeans code-completion

这个问题一直困扰着我多年。我的英语不那么流利,有点难以解释,所以请耐心等待。

由于我是一个懒惰的程序员,我使用Netbeans IDE,因为我喜欢代码完成。为了让Netbeans提示我正确的属性和方法(并且仅仅因为我认为这是一个好习惯),我在每个方法或属性上面添加一个不错的PHPdoc块,如下所示:

/**
 * My method
 *
 * Some explanation that will show up as a hint,
 * perhaps even with a <code>Example</code
 *
 * @param bool $flag
 * @return self
 */
public function doSomething($flag) {
     ...
     return $this;
} 

这很好用,在完成代码时我得到了我的期望,直到我开始扩展类。例如

abstract class Parent {
   /** 
    * @return self
    */
   public function parentMethod() {
        ...
        return $this
   }
}

class Child extends Parent {
   /** 
    * @return self
    */
   public function childMethod() {
        ...
        return $this
   }
}

如果我现在说
new Child()->
Netbeans会建议父母和孩子的方法。如果我那么 new Child()->childMethod()->
我仍然会从Child和Parent获得所有方法。

  

只要我使用返回自身的方法,并且只是   在Parent类上声明,我只会得到建议   在Parent类上实现的方法。

所以继续这个例子,如果我这样做 new Child()->parentMethod()->
我只会将parentMethod作为类型提示,而childMethod仍然可用,因此也应该建议。

我在网上搜索过但找不到任何解决方法(@return $this有完全相同的结果)。这是Netbeans中的错误,还是我做错了什么?有没有人为此找到解决方法(不在每行后添加@var)?

(我目前在使用Netbeans 8.0的Mac OSX 10.9上工作,但使用Netbeans 7.2,7.3和7.4的OSX 10.7和10.8也存在同样的问题)

0 个答案:

没有答案