|
[2004/09/01] 2004/09/01現在、下記のリンクはリンク切れになっています。うーん。ネタ的にもったいない。。。
PEARに含まれているPHPDocはPHPスクリプトで書かれています(当然。。。)が、本当にjavadocを使ってPHPスクリプトのAPIドキュメントを生成してしまうPHPDocがあります。「番外だよなぁ」と思いつつ、折角ですのでご紹介しておきます。
このPHPDocは全てJavaで書かれており、PHPスクリプトを読み込んで「仮のJavaファイル」に変換し、そのファイルを使ってjavadocを実行するタイプのものです。当然ですが、実行にはJava実行環境(jreまたはjdk)が必要ですので、Sunのサイトから、jre/jdkのいずれかをダウンロードし、インストールしておきます。今回は、J2SE v 1.3.1_07を使用しました。
2003/05/27現在の最新版であるJ2SDK 1.4.1_02で試したところ、javadoc実行時に上記の「仮のJavaファイル」が見つからない、というエラーになってしまいました。とりあえず試してみたい方は、1.3.xを使用した方がいいようです。ちなみに、1.3系の最新版は2003/05/27現在、1.3.1_08です。
●jdkのインストール# cp j2sdk-1_3_1_07-linux-i586.bin /usr/local/
# cd /usr/local
# chmod +x j2sdk-1_3_1_07-linux-i586.bin
# ./j2sdk-1_3_1_07-linux-i586.bin
(snip)
# ln -s jdk1.3.1_07 jdk
#
PHPDocのサイトからphpdoc.v2.jarをダウンロードし、適当なディレクトリ(以下$PHPDOC_HOME)に保存し、jarで解凍しておきます。また、javadocを使用しますので、CLASSPATHに$JAVA_HOME/lib/tools.jarを追加しておきます。
●PHPDocのインストール$ export JAVA_HOME=/usr/local/jdk
$ export PATH=$PATH:$JAVA_HOME/bin
$ jar xf phpdoc.v2.jar
$
$ chmod +x phpdoc.sh
$ ls
META-INF/ gnu-regexp-1.0.8.jar phpdoc.jar
PerlTools.jar instructions.htm phpdoc.sh
exampleSource/ phpdoc.bat phpdoc.v2.jar*
$
$ export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
$
これで準備は完了です。
このphpdoc.shの引数にPHPスクリプトのファイル名を渡してやれば、APIドキュメントが作成されます。jarで解凍した際に作成されるexampleSourceディレクトリを対象に作成する場合は、以下のようになります。ドキュメントは、phpdoc.shを実行したディレクトリに作成されます。
●PHPDocの実行例$ ./phpdoc.sh exampleSource/*
PHPDoc v 2.3.5, created by DCMinds ( dcmind@hotmail.com )
Loading source file exampleSource/HttpSession.inc...
Loading source file exampleSource/Session.inc...
Loading source file exampleSource/Test.inc...
Constructing phpdoc information...
Converting class HttpSession to Java syntax...
Converting class Session to Java syntax...
Converting class Test to Java syntax...
Initiating Javadoc program...
ソースファイル cps.tmp を読み込んでいます...
Javadoc 情報を構築しています...
javadoc: warning - クラス var が見つかりません。
全パッケージとクラスの階層ツリーを作成しています...
全パッケージとクラスのインデックスを作成しています...
overview-tree.html の生成
index-all.html の生成
deprecated-list.html の生成
全クラスのインデックスを作成しています...
allclasses-frame.html の生成
index.html の生成
packages.html の生成
HttpSession.html の生成
Session.html の生成
Test.html の生成
serialized-form.html の生成
package-list の生成
help-doc.html の生成
stylesheet.css の生成
警告 1 個
$
作成されたファイルは、こんな感じです。当然ですが、javadocそのものですねぇ。。。(^-^;
で、コメントの記述方法ですが、PEARのPHPDocとは、若干異なります。詳しくは、PHPDocのサイトに書いてありますので、参照してみてください。
参考までに、以前公開したXSLTラッパークラスのコメントを一部(returnsの部分を追加)書き直して、PHPDocしてみました(PHPソース:zip形式
/tgz形式
)。こんな感じになります。
●コメントの例
<?php
class XSLT extends Object
{
:
function process($xml, $xsl)
{
return $this->xsltProcessor_->process($this->xsltHandler_, $xml, $xsl);
}
:
?>
ここしばらく仕事がJava漬けなので、個人的には非常にいい感じです。。。が、再帰的にソースを読みに行ってくれないんですね。。。(;_;) あと、PEARのPHPDocとコメントの書式が違うので、一致して欲しいですね。もう一つ欲を言うと、PHPのクラス群もJavaのパッケージのようにディレクトリで管理している場合、パッケージ(PHPにそういった概念がないですが。。。)を付けてくれる機能があれば、面白くなるかも知れません。
|