這個問題似乎與標題相反。你想看看房產,看看吸氣人員的描述,還是想看看吸氣人,看看房產的描述?
我假設你想要兩個。但是,你實際上無法得到。最多一個人的描述可能包含一個鏈接到另一個,但實際上並沒有在其自己的描述中包含其他人的描述。
在這裏,該屬性的描述將包含一個指向獲取者文檔的鏈接。
/**
* @property $Property is controlled by {@link getProperty()}.
*/
class SomeClass {
public function __get($name){
return $this->{'get'.$name};
}
/**
* Gets the value of {@link $Property}.
* @return bool
*/
public function getProperty(){
return true;
}
}
這裏有兩個併發症:關於如何神奇的事情出現在實際的文檔(以及如何集成開發環境顯示出來);以及{@link} inline標籤是否實際執行任何操作。
在phpDocumentor 1.x中,魔法材料僅作爲課程本身列出的額外信息出現。在phpDocumentor 2.x中,魔術屬性和魔術方法都會出現,就好像它們是真正的屬性和方法。 2.x行爲是一個很大的改進。對於IDE,我只能說Eclipse PDT,我發現它符合1.x行爲。
在phpDocumentor 1.x中,內聯{@link}標籤確實起作用,並且通常成爲指向它指向的元素(屬性,方法)的文檔的超鏈接。但是,由於1.x實際上並未爲@property和@method標識的魔術事物創建專用文檔,因此「{@link $ Property}」實際上並不指向任何內容。有可能類中的文本docblock顯示「@property $ Property」描述可能正確地顯示到getProperty()的鏈接,但僅僅是因爲getProperty()是一個真正的方法,因此它具有它自己的文檔。如果getProperty()是由「@method getProperty()」表示的魔術方法,那麼「{@link getProperty()}」將不會指向任何位置。
在phpDocumentor 2.x中,內聯{@link}標記沒有實現,因此它最終只會顯示一個可見文本,就像它沒有標記目的一樣。一旦2.x實現了這個內聯標籤,那麼我上面的解決方案應該能夠解決你的兩個潛在問題。
Eah,但是如果我有20個屬性和20個getter,那麼所有這些getters會出現在IDE的文檔結果中,有沒有辦法隱藏不必要的鏈接? –