2013-06-17 3 views
1

Я хотел бы найти способ использовать phpdoc2 для анализа PHP-проектов в JSON, а не в абстрактном синтаксическом дереве XML. Хотя, конечно, я мог просто разобрать XML в JSON, похоже, что создание XML здесь будет лишним.Parsing phpdoc to JSON

Итак, в ореховой оболочке возникает вопрос: существует ли простой способ настроить парсер phpdoc2 для непосредственного создания JSON вместо XML? Или, может быть, некоторые подсказки о том, что расширить в phpdoc2 для маршрутизации вывода синтаксического анализа в JSON?

История этого вопроса: Я хотел бы создать JSDuck-подобную документацию для моего проекта PHP. Хотя я обнаружил, что JSDuck can be used with PHP projects я не буду идти по этому пути по двум причинам:

  1. Не хочет расставаться с комментариями PHPDoc в моих PHP классов или добавить что-то JSDuck специфичного там;
  2. На самом деле не нужен весь интерфейс документа JSDuck, поскольку я собираюсь создать сам пользовательский;
  3. Предпочитаете PHP-решение.

ответ

1

После полудня, потраченного на phpdoc2, я наконец нашел решение, которое, я считаю, является правильным. Не стоит беспокоиться или даже знать об абстрактном синтаксическом дереве XML в phpdoc2 для достижения цели.

Решение:

Создать новый писатель класс Json.php и поместить его в 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 писателю src/phpDocumentor/Plugin/Core/ServiceProvider.php «ы register метод:

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

И, наконец, просто использовать шаблон при вызове phpdoc на вашем проекте ,