【问题标题】:Parsing phpdoc to JSON将 phpdoc 解析为 JSON
【发布时间】:2013-06-12 23:13:31
【问题描述】:

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

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

这个问题背后的故事是:我想为我的 PHP 项目创建类似 JSDuck 的文档。虽然我发现JSDuck can be used with PHP projects 我不会走那条路,原因有两个:

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

【问题讨论】:

    标签: json phpdoc abstract-syntax-tree jsduck


    【解决方案1】:

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

    解决办法是:

    创建一个新的 writer 类 Json.php 并将其与其他 writer 一起放入 src/phpDocumentor/Plugin/Core/Transformer/Writer/。一个好的起点是采用 Graph.php 编写器并将其重写为输出 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 时使用模板即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-23
      • 2021-12-26
      • 2011-10-08
      • 2015-03-01
      • 2012-04-18
      • 2012-04-18
      • 2012-11-19
      • 2010-12-31
      相关资源
      最近更新 更多