2010年6月28日月曜日

phpDocumentorのインストール

phpのソースコードを自動的にドキュメント化してくれるツール
「phpDocumentor」
インストールからドキュメント生成までをやってみたので簡単にメモ。

phpDocumentorのダウンロード

本家サイト http://phpdoc.org/
トップページ右上部にある「Downloads」からソースファイルをダウンロードする。
(20100628現在、1.4.3 が最新)
今回はLinux環境に入れるので PhpDocumentor-1.4.3.tgz をダウンロード。
.zip のほうは改行コードの関係で実行時にエラーが出る。

適当なディレクトリにUpして展開

FTPクライアント(FFFTPなど)や、SCPクライアント(WinSCPなど)を使ってサーバにアップロードする。
アップロードできたら、tarコマンドで展開する。
$ tar zxvf PhpDocumentor-x.x.x.tgz

memory_limitの設定

展開するとできる PhpDocumentor-x.x.x ディレクトリの中の phpDocumentor.ini に、
memory_limit = 512M
とあるが、コメントアウトされているのでコメントを外し有効にする。
php.ini にも同設定があり、そこで設定してもよい。(デフォルトでは8Mとか16Mになっている)
これをやらないと、対象となるPHPファイルが多い場合にメモリ不足エラーとなる可能性がある。
(※512Mでも足らなくなる可能性はあるが、、)

ドキュメント生成コマンドを実行する

PhoDocumentor-x.x.x ディレクトリの中の phpdoc を実行する。
$ phpdoc -t [target_dir] -d [source_dir] -o HTML:Smarty:PHP
 -t : ドキュメントを生成するディレクトリ
 -d : 対象となるPHPのソースコードのあるディレクトリ。配下全てが対象となる。
 -o : 出力するテンプレート。HTML、PDFなどから選べる。

その他、いろんなオプションがあるので詳しくは phpDocumentor Tutorial を参照下さい。
実行すると [target_dir] で指定したディレクトリに index.html ができているのでそこから閲覧する。

文字化け対策

-o オプションで HTML:Smarty を指定すると問題なく表示できるが、HTML:frames では文字化けするようだ。PDFなどは未確認。
で、phpDocumentor/Converters/HTML/frames/templates 内のテンプレートファイルの charset の値を書き換える。
デフォルトは「iso-8859-1」になっているので、これを自分の環境に合わせて「UTF-8」とか「SHIFT-JIS]とかに変更する。 なぜべた書きされているかがわからん、、
対象ファイルは
  • index.tpl
  • top_frame.tpl
  • blank.tpl
  • header.tpl
の4つ。といっても出力デザイン毎にファイルがあるので結構ある。
めんどくさいので sh スクリプトで一発置換。細かい機能は適宜追加してください。
#!/bin/bash

for path in `grep -rl 'charset=iso-8859-1' *`
do
 sed -i "s/iso-8859-1/UTF-8/g" $path
 echo "$path の charset の値を置換しました"
done

ドキュメント生成コマンドの sh スクリプト

phpdoc コマンドもいちいち書くのが面倒なので sh スクリプト化した。こんな感じ。
#! /bin/sh
PhpDocumentor-1.4.3/phpdoc \
 -t  trunk/..... \
 -d  trunk/..... \
 -i  trunk/.....*,trunk/.....,… \
 -o  HTML:Smarty:PHP \
 -ti title \
 -s  on
以上

0 件のコメント:

コメントを投稿