我有一个抽象基类:
abstract class BaseClass {
/**
* @return CLASSNAME
*/
public function fluent() {
// do stuff
return $this;
}
}
通常,我会将 BaseClass 放在 CLASSNAME 所在的位置,一切都会好起来的,PDT 会获取 phpdoc 返回类型并愉快地自动完成。
直到,也就是说,我继承了 BaseClass 并添加了额外的方法,并且代码在派生类的实例上竞争。 PDT 将只识别来自 BaseClass 的方法,而不是来自派生类的方法。
我需要的是@return self 或@return this 之类的东西。
PDT有这样的功能吗?或者是否有一个替代技巧,而不必在每个派生类中声明这些方法?
最佳答案
据我所知,PDT 中没有这样的功能,但您至少可以使用类型提示:
$obj = $osomething->fluent();
/* @var $obj ChildClass */
然后您将拥有自动完成派生的所有方法。我知道每次调用 fluent()
时都写这个注释很烦人,但它仍然比一遍又一遍地重新定义每个派生类中的方法要好......
关于php - 获取 PDT 代码完成以识别基类的运行时返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504198/