Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPDocumentor。我可以从它添加到属性的链接吗';什么是getter描述?_Php_Phpdoc - Fatal编程技术网

PHPDocumentor。我可以从它添加到属性的链接吗';什么是getter描述?

PHPDocumentor。我可以从它添加到属性的链接吗';什么是getter描述?,php,phpdoc,Php,Phpdoc,所以问题是-如何通过查看$Property的文档来查看getProperty()中的描述?或者只需查看getProperty()文档的链接…我认为您能管理的最好方法是 /** * @property $Property */ class SomeClass { public function __get($name){ return $this->{'get'.$name}; } /** * Some description *

所以问题是-如何通过查看$Property的文档来查看getProperty()中的描述?或者只需查看getProperty()文档的链接…

我认为您能管理的最好方法是

/**
* @property $Property
*/
class SomeClass {

    public function __get($name){
       return $this->{'get'.$name};
    }

    /**
     * Some description
     * @return bool
     */
    public function getProperty(){
       return true;
    }

}

使用类级PHPDoc注释

@property $Property
@see getProperty

是的,神奇的getter将出现在IDE中,这正是它有用的原因

问题似乎与标题相反。您希望查看属性并查看getter的描述,还是希望查看getter并查看属性的描述

我想你们两个都想要。然而,你实际上也不能得到。最多,一个描述可以包含指向另一个的链接,但在其自身的描述中实际上不包含另一个的描述

在这里,属性的描述将包含一个指向getter文档的链接

/**
 * @method string getMyFirstProperty()  Return value of the property called first
 * @method float  getMySecondProperty() Return value of the property called second
 */
这里有两个复杂问题:在实际文档中如何显示神奇的东西(以及IDE如何显示它们);以及{@link}内联标记是否真正起作用

在PHPDocumentor1.x中,magic stuff仅作为类本身上列出的额外信息出现。在PHPDocumentor2.x中,魔术属性和魔术方法都将显示为真实的属性和方法。x行为是一个很大的改进。对于IDE,我只能说是EclipsePDT,我看到它与1.x行为相匹配

在phpdocumentor1.x中,内联{@link}标记起作用,并且通常成为指向元素(属性、方法)的文档的超链接。然而,由于1.x实际上没有为@property和@method标识的神奇事物创建专用文档,因此“{@link$property}”实际上不能指向任何东西。类docblock中显示“@property$property”描述的文本可能会正确显示到getProperty()的链接,但这只是因为getProperty()是一个true方法,因此它有自己的doc。如果getProperty()是一个由“@method getProperty()”表示的神奇方法,那么“{@link getProperty()}”就没有指向的地方了


在phpdocumentor2.x中,内联{@link}标记没有实现,因此它最终将只是一个可见文本,就好像它没有标记用途一样。一旦2.x实现了这个内联标记,那么我上面的解决方案应该能够解决您的两个潜在问题。

Eah,但是如果我有20个属性和20个getter,那么所有这些getter都将出现在IDE的文档结果中,有没有办法隐藏不必要的链接?
/**
 * @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;
    }

}