【问题标题】:phpDoc partial updatephpDoc部分更新
【发布时间】:2014-09-15 14:07:48
【问题描述】:

我正在尝试在我们的团队开发环境中自动构建文档,因此我们决定使用 phpDocumentor(2.7.0) 并触发它在 SVN 提交后重建文档。

我已经做了一个触发器,但是我很确定每次执行时都会重新构建所有文档,因为即使我只提交一个修改过的文件,phpdoc 命令的持续时间几乎与文档初始构建时一样。

所以我的想法是只重建这些文件的文档,在提交中更改。有没有可能这样做? 我查看了 phpDoc 和 Google 的文档,但没有找到。

【问题讨论】:

    标签: svn phpdoc post-commit phpdocumentor2


    【解决方案1】:

    只要您最后一次执行 phpDocumentor2 的结果文件位于您将要运行新执行的同一位置,默认情况下应该只处理新的/修改过的文件。 phpDocumentor2 有一个内置的缓存机制来跟踪“这是我们在上次运行文档时所做的一切”,以便它可以确定您的哪些代码文件已被添加/更改。

    当然,如果您的构建每次都运行新鲜,那么上次运行的缓存不可用,因此 phpDocumentor2 只知道“这是有史以来的第一次执行”。

    【讨论】:

    • 我以为是这样,当我使用“响应式”主题时看起来是这样,但是当我选择“干净”主题时,每次构建都会花费很多时间,就像(或接近)第一次运行。
    • 我会接受这个答案,因为它看起来像是“干净”主题问题,但使用默认的“响应”主题,缓存机制运行良好。
    【解决方案2】:

    您可以使用svnlook changed 获取受修订影响的文件列表。如果您可以使用单个文件作为参数,则可以只将需要的文件通过管道传输到 PHPDoc

    【讨论】:

    • 感谢您的回复。我知道 svnlook 发生了变化,我试图将这些文件传递给 phpdoc -f file1,file2,file2 -t /path/to/my/doc/ 但看起来当我这样做时,文档会重建,删除有关所有其他文件的信息。我的意思是,例如,首先我使用 phpdoc -d /my/source -t /path/to/my/doc 构建完整的文档,然后我可以在所有文件中看到文档然后,当我这样做时,phpdoc -d /my/source/file1,/my/source/file2 -t /path/to/my/doc 删除了所有 doc,只记录了 file1 和 file2。
    • @dmikam - 在临时目录中构建 文件,通过覆盖旧目录移动到实际目标?
    • 不可能,因为新创建的文件将覆盖现有文件,用其类、函数等列表覆盖侧边栏菜单。它还会覆盖类层次结构图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 2023-03-19
    • 2021-08-08
    • 2012-06-03
    相关资源
    最近更新 更多