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

Inheritance 如何在PhpDocumentor中显示继承方法的完整docblock?,inheritance,documentation,abstract,phpdoc,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 doc

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

<?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_类文档中,我看到我的bar()函数在方法摘要和方法的详细描述中都有很好的文档记录……但是我的foo()函数(它是继承的)只声明为继承的,我需要跟随一个链接查看它的完整文档,甚至只看到它可以被这个函数调用。我看到的示例如图所示。(我不能将图像放在这里,因为我是新用户…)

根据,我应该能够以某种方式看到Docblock,但我不知道如何做到:

DocBlock在1.2.0版中新增,由子类、变量和方法继承

在从命令行调用phpdoc时,我到处寻找开关或运行的东西,但没有找到任何东西


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

试试Docblox。这是类似的,但输出是AJAX gold。唯一缺少的是Web界面。我将它作为pear包安装。

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

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

现在,如果要在子类中重新声明该方法,无论是重写父方法还是只是为父方法的抽象方法实际实现一个具体方法,那么在父方法的docblock中编写的许多方面都将在子方法的文档中可见

按照您的示例,最好通过具有抽象方法的抽象类来证明这一点,并对其进行完整的文档记录。然后,子类实现该方法,但没有自己的docblock(因为按照约定,它应该完全遵循抽象父类的方法docblock中的描述)。例如,此文档继承应该由可见继承的param和return标记可见


这种继承行为在像Eclipse这样的IDE中也是可见的。如果phpDocumentor未能在子类文档中显示这种继承,那就是一个bug。

我可能会研究它,但是phpDocumentor对我来说工作得很好,只有一个例外。所有数据都已经存在,只需显示即可。我确信我需要在某个地方激活某个功能或开关。我开始觉得这是不可能的,很遗憾。这让我大吃一惊,但似乎是这样的。谢谢ashnazg——关于HTML:Smarty:PHP的讨论对我来说还是新鲜事。是否有更多关于不同转换器的信息可供我尝试?HTML:Smarty:PHP在布局中不如HTML:default:default好,但它更好地显示了继承性。有其他选择的线索吗?我实际上发现转换器HTML:Smarty:HandS为其他感兴趣的人做了我想做的大部分事情。现在想知道如何更改侧边栏上的顺序,使类位于顶部。。。