如何在PhpDocumentor中显示继承方法的完整docblock?

时间:2011-10-15 22:59:48

标签: inheritance documentation abstract phpdoc

我目前有代码,其中有一个抽象的父类定义了一些具体的方法,子类扩展了这个父类,并将使用具体的方法。例如:

<?php

abstract class abstract_class {
    /**
    *   I document foo.
    */
    public function foo() {
        echo "I am the foo function!";
    }
}

class child_class {
    /**
    *   I document bar.
    */
    public function bar() {
        echo "I am the bar function!";
    }
}

?>

在我的child_class文档中,我看到我的bar()函数都在文档的方法摘要和详细描述中都有详细记录......但我的foo()函数是继承的,只是声明是继承的我需要按照链接查看其完整文档,甚至只是看到它可以通过此函数调用。我看到的一个例子显示在图像here中。 (我不能把图像放在这里,因为我是新用户......)

根据PhpDocumentors documentation,我应该能够以某种方式看到Docblock,但我不知道该怎么做:

  

1.2.0版中的新功能,DocBlock由子类,变量和方法继承。

当我从命令行调用phpdoc但没找到任何东西时,我全神贯注地寻找一个开关或者什么东西。

如何以我想要的方式显示我想要的信息?

2 个答案:

答案 0 :(得分:1)

如果你不重新声明子类中的方法,那么我认为各种输出转换器的结构只会显示一个继承方法的列表。某些转换器至少会包含docblock(HTML:Smarty:PHP)中方法的简短描述,而其他转换器则不包含(HTML:frames:default)。

不,没有可用于修改此行为的运行时配置或开关。这只是编写输出转换器以构造结果文档的问题。

现在,如果您要在子类中重新声明该方法,无论是覆盖父方法还是仅实际为父级的抽象方法实现具体方法,那么您在父级中编写的许多方面然后,方法的docblock将在子方法的文档中可见。

按照你的例子,这可能最好通过具有抽象方法的抽象类来证明,并且它得到了完整的记录。然后,子类实现该方法,但没有自己的docblock(因为按照惯例,它应该完全遵循抽象父级方法docblock中的描述)。例如,可以通过param和return标签明显继承此doc继承。

这种继承行为在Eclipse等IDE中也很明显。如果phpDocumentor未能在子类docs中显示这种继承,那就是一个bug。

答案 1 :(得分:0)

试试Docblox。它类似,但输出是AJAX黄金。唯一缺少的是Web界面。我把它安装成梨包。