最近のphpDocumentorはtwitter bootstrapベースでドキュメントを吐き出すようになったよ
phpDocumentorっていうと、smartyを使ったPHPマニュアルと同じ見た目のものって感じだったんだけど、久しぶりに使おうと思ったらすごくモダンになっていた。
ということで、今回はやる気を出して使ってみる。
1.チャネルを登録
$ sudo pear channel-discover pear.phpdoc.org
2.phpDocumentor2をインストール
http://www.phpdoc.org/の通り、-alphaのほうで
$ sudo pear install --alldeps phpdoc/phpDocumentor-alpha
3.コマンドラインから利用してみる
こんな感じで使ってみると。。
$ phpdoc run -t /path/to/doc/ -d /path/to/app/ -p
——————————————————————————————–
PHP Warning: DOMDocument::load(): Input is not proper UTF-8, indicate encoding !
Bytes: 0xE5 0x8A 0x5D 0x5D in /path/to/doc/structure.xml, line: XXXX in /usr/share/pear/phpDocumentor/src/phpDocumentor/Transformer.php on line 152
——————————————————————————————–
ってエラーがでた。
生成されたxmlにUTF-8以外の文字コードの文字があるよってエラーだったので(コメントとかちゃんとUTF-8で書いていたんだけどなぁ)
$ sudo vim /usr/share/pear/phpDocumentor/src/phpDocumentor/Transformer.php
でsetSource()のところを以下のように修正
$xml = new DOMDocument();
↓
$xml = new DOMDocument(“1.0″,”UTF-8″);
で、もう一度動作させてみたけど、だめっぽい。。
じゃあもう生のXMLをUTF-8に変換するかってことでDomDocumentクラスを生成している下あたりに以下の記述を追加
$source = file_get_contents($source); $source = mb_convert_encoding($source,'utf8','auto');
で、もう一度動かしてみる。
$ phpdoc run -t /path/to/doc/ -d /path/to/app/ -p ................................................. 49/49 . 1/1 ............ 12/12 ........................................... 43/43 Finished transformation in 0.88 seconds
今度は大丈夫っぽい。
今後の詳細仕様はこれベースに作っていこうかなぁ。
2012.8.22追記
この不具合はv2.0.0a3以降のものであれば修正されているようです。