3

我有一个抽象基类:

abstract class BaseClass {
  /**
   * @return CLASSNAME
   */
  public function fluent() {
    // do stuff
    return $this;
  }
}

通常,我会将 BaseClass 放在 CLASSNAME 所在的位置,一切都会好起来的,PDT 会选择 phpdoc 返回类型并愉快地自动完成。

直到,也就是说,我继承了 BaseClass 并添加了其他方法,并且代码在派生类的实例上竞争。PDT 将只识别来自 BaseClass 的方法,而不识别来自派生类的方法。

我需要的是@return self 或@return this 之类的东西。

PDT有这样的功能吗?或者是否有其他技巧而不必在每个派生类中声明这些方法?

4

1 回答 1

2

AFAIK PDT 中没有这样的功能,但您至少可以使用类型提示:

$obj = $osomething->fluent();
/* @var $obj ChildClass */

然后,您将拥有派生自自动完成的所有方法。我知道每次打电话都写这条评论很烦人fluent(),但它仍然比一遍又一遍地重新定义每个派生类中的方法要好......

于 2010-03-23T23:19:34.957 回答