Do You PHP?    
Search Engine Optimization  php5 powerd  Valid XHTML 1.0!  Valid CSS!  このサイトのはてなブックマーク数 



last updated
2004/09/01

counter hits
since 1999/11/06


もう1つのPHPDoc - javadocを使ったphpdoc

alert[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を使用しました。

caution2003/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
{
         :
    /**
     * XML/XSLデータから、変換結果を返します
     * @access    public
     * @param    String    $xml    XMLデータ
     * @param    String    $xsl    XSLTデータ
     * @return    String    変換結果
     ** @returns    string
     */
    function process($xml, $xsl)
    {
        return $this->xsltProcessor_->process($this->xsltHandler_, $xml, $xsl);
    }
         :
?>

ここしばらく仕事がJava漬けなので、個人的には非常にいい感じです。。。が、再帰的にソースを読みに行ってくれないんですね。。。(;_;) あと、PEARのPHPDocとコメントの書式が違うので、一致して欲しいですね。もう一つ欲を言うと、PHPのクラス群もJavaのパッケージのようにディレクトリで管理している場合、パッケージ(PHPにそういった概念がないですが。。。)を付けてくれる機能があれば、面白くなるかも知れません。



About This Site |  Privacy Policy |  Contact
Copyright © 1999 - 2004 by Hideyuki SHIMOOKA all rights reserved.