这个问题似乎与标题相反。您是想查看属性并查看 getter 的描述,还是查看 getter 并查看属性的描述?
我假设你想要两者。但是,您实际上也无法获得。最多,一个人的描述可以包含到另一个人的链接,但实际上并不在自己的描述中包含另一个人的描述。
在这里,属性的描述将包含一个指向 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}”实际上不能指向任何东西。显示“@property $Property”描述的类文档块中的文本可能会正确显示指向 getProperty() 的链接,但这只是因为 getProperty() 是一个真正的方法,因此它有自己的文档。如果 getProperty() 是一种由“@method getProperty()”表示的神奇方法,那么“{@link getProperty()}”将无处可指。
在 phpDocumentor 2.x 中,内联 {@link} 标签没有实现,因此它最终只是一个可见的文本,就好像它没有标签用途一样。一旦 2.x 实现了这个内联标签,那么我上面的解决方案应该能够解决您的两个潜在问题。