将phpdoc解析为JSON
我想找到一种使用phpdoc2将PHP项目解析为JSON而不是抽象语法树XML的方法。虽然我当然可以将XML解析为JSON,但在这里创建XML似乎是不必要的开销 因此,简单地说,问题是:有没有一种简单的方法可以配置phpdoc2的解析器直接生成JSON而不是XML?或者是关于在phpdoc2中扩展什么以将解析输出路由到JSON的一些线索 这个问题背后的故事是:我想为我的PHP项目创建类似JSDuck的文档。虽然我发现我不会走那条路,但有两个原因:将phpdoc解析为JSON,json,phpdoc,abstract-syntax-tree,jsduck,Json,Phpdoc,Abstract Syntax Tree,Jsduck,我想找到一种使用phpdoc2将PHP项目解析为JSON而不是抽象语法树XML的方法。虽然我当然可以将XML解析为JSON,但在这里创建XML似乎是不必要的开销 因此,简单地说,问题是:有没有一种简单的方法可以配置phpdoc2的解析器直接生成JSON而不是XML?或者是关于在phpdoc2中扩展什么以将解析输出路由到JSON的一些线索 这个问题背后的故事是:我想为我的PHP项目创建类似JSDuck的文档。虽然我发现我不会走那条路,但有两个原因: 我不想在我的PHP类中使用phpdoc注释,也不
在phpdoc2上花了半天时间后,我终于找到了一个我认为是正确的解决方案。为了实现这一目标,不必担心甚至不必知道phpdoc2中的抽象语法树XML 解决办法是: 创建一个新的writer类
Json.php
,并将其与其他writer一起放入src/phpDocumentor/Plugin/Core/Transformer/writer/
。一个好的起点是使用Graph.php
writer并重写它以输出JSON而不是SVG
创建并使用新的简单模板,如:
<?xml version="1.0" encoding="utf-8"?>
<template>
<transformations>
<transformation writer="Json" artifact="classes.json" />
</transformations>
</template>
最后,在项目中调用
phpdoc
时使用模板。在phpdoc2上花了半天时间后,我终于找到了一个我认为是正确的解决方案。为了实现这一目标,不必担心甚至不必知道phpdoc2中的抽象语法树XML
解决办法是:
创建一个新的writer类Json.php
,并将其与其他writer一起放入src/phpDocumentor/Plugin/Core/Transformer/writer/
。一个好的起点是使用Graph.php
writer并重写它以输出JSON而不是SVG
创建并使用新的简单模板,如:
<?xml version="1.0" encoding="utf-8"?>
<template>
<transformations>
<transformation writer="Json" artifact="classes.json" />
</transformations>
</template>
最后,在项目上调用phpdoc
时,只需使用模板即可