1

我想找到一种使用 phpdoc2 将 PHP 项目解析为 JSON 而不是抽象语法树 XML 的方法。虽然我当然可以将 XML 解析为 JSON,但在这里创建 XML 似乎是不必要的开销。

所以,简而言之,问题是:有没有一种简单的方法可以将 phpdoc2 的解析器配置为直接生成 JSON 而不是 XML?或者也许有一些关于在 phpdoc2 中扩展什么以将解析输出路由到 JSON 的线索?

这个问题背后的故事是:我想为我的 PHP 项目创建类似 JSDuck 的文档。虽然我发现JSDuck 可以用于 PHP 项目,但我不会这样做,原因有两个:

  1. 不想在我的 PHP 类中使用 phpdoc 注释或在其中添加一些 JSDuck 特定的东西;
  2. 不需要整个 JSDuck 文档界面,因为我将自己创建一个非常自定义的界面;
  3. 首选 PHP 解决方案。
4

1 回答 1

1

在 phpdoc2 上花了半天时间后,我终于找到了一个我认为是正确的解决方案。人们不应该担心甚至知道 phpdoc2 中的抽象语法树 XML 来实现这一目标。

解决方案是:

创建一个新的 writer 类Json.php并将其src/phpDocumentor/Plugin/Core/Transformer/Writer/与其他 writer 一起放置。一个好的起点是使用Graph.phpwriter 并重写它以输出 JSON 而不是 SVG;

创建并使用一个新的简单模板,例如:

<?xml version="1.0" encoding="utf-8"?>
<template>
    <transformations>
        <transformation writer="Json" artifact="classes.json" />
    </transformations>
</template>

将 Json writer 添加到src/phpDocumentor/Plugin/Core/ServiceProvider.phpregister方法中:

$writerCollection['Json'] = new Writer\Json();

phpdoc最后,只需在调用您的项目时使用模板。

于 2013-06-18T04:40:26.223 回答