2013-06-17 6 views
1

phpdoc2를 사용하여 PHP 프로젝트를 추상 구문 트리 XML이 아닌 JSON으로 구문 분석하는 방법을 찾고 싶습니다. 물론 XML을 JSON으로 구문 분석 할 수는 있지만 XML을 작성하면 불필요한 오버 헤드가 발생할 수 있습니다.Phpdoc에서 JSON 구문 분석

너트 쉘에서 질문은 : phpdoc2의 파서가 XML 대신 직접 JSON을 생성하도록 구성하는 쉬운 방법이 있습니까? 또는 파싱 결과를 JSON으로 라우트하기 위해 phpdoc2에서 확장해야 할 부분에 대한 단서가 있습니까?

이 질문에 대한 이야기는 다음과 같습니다. PHP 프로젝트를위한 JSDuck과 유사한 문서를 만들고 싶습니다. 내가 JSDuck can be used with PHP projects 나는 두 가지 이유 때문에 그런 식으로 가지 않을 것이라는 점을 발견했지만 :

  1. 내 PHP 클래스에서하는 PHPDoc 의견이 일부 또는 거기에 JSDuck 특정 무언가를 추가하지 마십시오 ;
  2. 매우 맞춤화 된 JSDuck 문서 인터페이스를 직접 만들 필요는 없습니다.
  3. PHP 솔루션을 선호하십시오.

답변

1

phpdoc2에서 보낸 하루 반나름 마침내 나는 올바른 해결책이라고 생각하는 해결책을 찾았습니다. 목표를 달성하기 위해 phpdoc2에서 추상 구문 트리 XML에 대해 걱정하거나 알고 있으면 안됩니다.

솔루션은 다음과 같습니다

새로운 작가 클래스 Json.php를 만들고 다른 작가와 함께 src/phpDocumentor/Plugin/Core/Transformer/Writer/에 넣습니다. 좋은 시작점은 Graph.php 작가를 가져 와서 SVG 대신 JSON을 출력하도록 다시 작성하는 것입니다.

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

그리고 프로젝트에 phpdoc를 호출 할 때 마지막으로, 단지 템플릿을 사용하십시오 :

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

src/phpDocumentor/Plugin/Core/ServiceProvider.php의에 register 방법을 JSON 작가 추가 : 같은

새로운 간단한 템플릿 만들기 및 사용 .