使用Sphinx生成PHP代码文档? [关闭]

问题描述 投票:27回答:5

Sphinx是一个Python库,用于从一组ReST格式的文本文件中生成漂亮的文档。不是用于全文搜索的工具

我也完全了解doxygen / phpdoc工具。我试图找出是否有一种使用Sphinx来记录PHP项目的方法?甚至其他非Python语言?

https://www.sphinx-doc.org/en/master/

php python-sphinx documentation-generation
5个回答
25
投票

根据我的经验,Sphinx和ReST可用作通用文档工具。 Sphinx没有什么要求您仅将其用于基于Python的项目。例如,在我的工作中,我使用它来构建用户指南和XML-RPC API参考。在这两种情况下,我都没有用过sphinx.ext.autodoc或其他Python特定的附加功能。该文档是用“手工”编写的,其中大部分是通用的ReST指令,而不是Sphinx提供的特殊指令。对于它的价值,我还不需要为非Python文档创建自定义ReST指令。

即使您正在使用PHP项目,我认为您也会发现Sphinx很有用。例如,the module specific markup提供的大多数指令实际上都是相当通用的。我不明白为什么您不能或不会使用这些结构来记录Python以外的语言中的内容。同样,Sphinx使show code examples in other languages变得非常容易。甚至还有一个配置值,可将默认值更改为Pygments支持的任何语言(包括PHP)。如果您特别有野心,甚至可以create a Sphinx extension从您的PHP代码中提取相关内容。

话虽如此,请务必考虑您的文档项目的受众。虽然我认为Sphinx是一个出色的工具,并且会推荐它用于各种文档项目,但是如果您的听众还有其他期望,请记住这一点。例如,如果您正在编写Java项目文档,那么很多观众可能都希望使用Javadoc风格的文档。如果您偏离了这种期望,请确保它不只是一kick而就的(即,它为您提供了比其他情况更好的文档),并准备(简要地)为您所做的不同工作辩护(例如,常见问题解答或简介)。

最后,无论使用哪种文档来创建文档,总比没有文档要好。如果有什么不一样,请使用任何可以帮助您的工具。



4
投票

CakePHP将Sphinx用于其新文档,而我为sphinx编写了phpdomain。虽然没有办法将您的php doc块自动包含到sphinx中,但我仍然认为它是可用的更好的文档编写工具之一。非常适合用于更多叙事风格的文档。但是,有了phpdomain,您也可以制作api文档。


2
投票

The Doctrine项目,一个PHP的ORM,使用Sphinx在www.doctrine-project.org处生成其在线文档。他们为PHP使用自定义pygment。该文档可在https://github.com/doctrine/orm-documentation的Github上找到。它包括自定义PHP pygment css文件。

还[包附带了许多pygment样式,您可以通过更改sphinx conf.py配置文件中的pygments_style =值来尝试。例如,要尝试使用pastie突出显示的sytle(它是python-pygments的一部分),请使用

pygments_sytle = 'pastie'

0
投票
就我而言,只要您不使用autodoc支持的语言来限制自己,就可以在Sphinx中记录几乎所有语法。您可以使用标准的Sphinx指令(例如.. class.. method.. function等)创建漂亮的API引用。它们与源代码完全分开工作,不需要任何自动生成和链接到源。

您还可以创建带有某些特殊类的通用警告,稍后可以将其链接到CSS:

.. admonition Title :class: Ololo This text could be formatted any way you want, using the ``Ololo`` tag.

还有一些角色(它们也允许自定义类),以及其他以特殊格式添加文本的方法,如果原始指令不足以满足您的要求。

如果决定从源代码异步创建文档,请确保在conf.py或项目启动时禁用检查代码覆盖率和其他与代码相关的功能。

PS:对于具有自定义类here的元素,您可以看到一个很好的答案。

© www.soinside.com 2019 - 2024. All rights reserved.