API Documentの自動生成を、PHPDocからDocBloxにしてみた。
PHPDocはデフォルトのテンプレートがずいぶん古いので。
DocBlox
http://www.docblox-project.org/
やり方は簡単・・・でもなかった。
まず、コマンドラインでPEARパッケージを入れる。
pear channel-discover pear.docblox-project.org
pear install docblox/DocBlox
pear install --alldeps docblox/DocBlox_Template_zend
そしてbuild.xmlのphpdocの設定をまるごと以下のように変える。
<!-- phing --> <target name="docblox" description="genarate API Document from Docblox"> <exec executable="docblox.bat"> <arg line="run -c ${basedir}/build/docblox.xml" /> </exec> </target>
さらに追加で、以下の内容でbuild/docblox.xmlを作成する。
<?xml version="1.0" encoding="UTF-8" ?> <docblox> <title>My project</title> <parser> <target>./build/api</target> <markers> <item>TODO</item> <item>FIXME</item> </markers> <extensions> <extension>php</extension> </extensions> <visibility></visibility> </parser> <transformer> <target>./build/api</target> </transformer> <logging> <level>warn</level> <paths> <default>./build/docblox.log</default> <errors>./build/docblox.errors.log</errors> </paths> </logging> <transformations> <template name="zend" /> </transformations> <files> <directory>./src</directory> <ignore>library/Zend/*</ignore> </files> </docblox>
が、これだとグラフだけ生成されない。
これはwindows環境だけでの現象である。
原因はdocblox内でgraphvizのdotコマンドを呼び出す際に、コマンドを"dot"とハードコーディングして指定しているから。
少々強引だが、docbloxのソースをいじらずに対応するには、以下の内容のファイルをパスが通ったところに"dot"という拡張子なしのファイルとして置く。
#!/path/to/php.exe
exec("/path/to/graphviz/bin/dot.exe -V 2>&1");
これでjenkinsを通してもグラフまで出力されるようになった。
windows対応はめんどくさい。