2010-03-23 19 views
3

我有一個抽象基類:獲取PDT代碼完成以識別基類中的運行時返回類型?

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

一般來說,我會放BaseClass的classname即,所有將被罰款,PDT便拿起PHPDoc的返回類型,並愉快地自動完成。

直到,也就是我的子類BaseClass並添加額外的方法,並且代碼在派生類的實例上競爭。 PDT將僅識別來自BaseClass的方法,而不識別來自派生類的方法。

我需要的是類似@return self或@return這樣的東西。

PDT是否有這樣的功能?或者是否有一個替代技巧,而不必每派生類在中聲明這些方法?

回答

2

AFAIK存在PDT沒有這樣的功能,但你可以使用至少類型提示:

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

那麼你就擁有所有方法從自動完成的。每當你打電話給fluent()時,我知道它很煩人寫這個評論,但它仍然比重新定義每個派生類中的方法反覆更好...