/**
* @property $Property
*/
class SomeClass {
public function __get($name){
return $this->{'get'.$name};
}
/**
* Some description
* @return bool
*/
public function getProperty(){
return true;
}
}
所以问题是 - 如何通过查看$ Property的文档来查看getProperty()的描述?或者只看到getProperty()文档的链接......
答案 0 :(得分:4)
问题似乎与标题相反。您想查看该属性并查看获取者的描述,还是想查看获取者并查看该属性的描述?
我假设你想要两个。但是,你实际上也无法获得。一个人的描述最多可以包含链接到另一个,但实际上并没有在其描述中包含其他描述。
此处,属性的描述将包含指向getter文档的链接。
/**
* @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;
}
}
这里有两个复杂因素:关于魔法事物在实际文档中的显示方式(以及IDE如何显示它们);以及{@link}内联标签是否实际执行任何操作。
在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()是 true < / em>方法,因此它有自己的doc。如果getProperty()是一个由“@method getProperty()”表示的神奇方法,那么“{@link getProperty()}”就没有任何指向。
在phpDocumentor 2.x中,内联{@link}标记未实现,因此它最终只会显示一个可见文本,就好像它没有标记目的一样。一旦2.x实现了这个内联标记,那么我的上述解决方案应该能够解决您的两个潜在问题。
答案 1 :(得分:0)
我认为您可以管理的最好的是
@property $Property
@see getProperty
答案 2 :(得分:0)
使用类级别的PHPDoc评论
/**
* @method string getMyFirstProperty() Return value of the property called first
* @method float getMySecondProperty() Return value of the property called second
*/
是的,魔术吸气剂将出现在IDE中,这实际上是有用的