doxygenを使ってPHPのドキュメント自動生成

2005/02/18

うちの環境にdoxygenをインストールしてみましたので、そのときのメモです。

Vine本家からもパッケージが配布されていますので、ここではVine本家でのインストールとdoxygen本家からインストールする方法の2種類を書いてみました。
Vine本家からインストールすると簡単ですが、バージョンが古いためPHP5へは対応していませんので、ご自身の環境に合わせてインストールしてください。


Vine3.1にdoxygenをインストール (Vine版パッケージ)

  1. パッケージのインストールをします。
    $ su -
    # apt-get update
    # apt-get install graphviz doxygen

Vine3.1にdoxygenをインストール (本家版バイナリ)

  1. パッケージのインストールをします。
    $ su -
    # apt-get update
    # apt-get install graphviz
    # exit
  2. Doxygenからバイナリ・パッケージ doxygen-1.4.1.linux.bin.tar.gz をダウンロードします。
  3. $ tar zxvf doxygen-1.4.1.linux.bin.tar.gz
    $ ./configure --prefix /usr/local
    $ su
    # make install

doxygenの設定

doxygenは開発しているプログラム郡1つについて1つの設定ファイルを必要とします。

次のようにして、設定ファイルの雛型を作ります。
$ cd スクリプト群が置いてあるディレクトリ
$ doxygen -g
すると、カレント・ディレクトリにDoxyfileというファイルができます。このファイルを編集して、設定します。

doxygenのマニュアルはLet’s use doxygen!に詳しく日本語で書いてありますのでここでは書きません。

ここでは設定例だけ書いておきます。デフォルトと変えた部分のみ書きます。

PROJECT_NAME           = プロジェクト名
PROJECT_NUMBER         = バージョン番号

# 出力先ディレクトリを指定
# 以下の設定では ./public_htlm/html/ にドキュメントが生成されます。
OUTPUT_DIRECTORY       = ./public_html

# 日本語で出力
OUTPUT_LANGUAGE        = Japanese

# JavaDocスタイルのコメント利用
JAVADOC_AUTOBRIEF      = YES

# コメントが付いていなくてもドキュメント化する
EXTRACT_ALL            = YES

# 標準出力へメッセージ出力する
QUIET                  = YES

# 入力ディレクトリ
INPUT                  = .

# 対象とするファイル
FILE_PATTERNS          = *.php *.tpl. *.inc

# サブ・ディレクトリまで検索してドキュメント生成
RECURSIVE              = YES

# LATEX形式の出力をしない
GENERATE_LATEX         = NO

# 「dot」ツールでグラフィック表示させるかを指定
HAVE_DOT               = YES

あとは次のようにすると、ドキュメントが生成されます。
$ doxygen


コメントの書き方

Let’s use doxygen!に詳しく日本語で書いてありますので詳しくはそちらを参照してください。

以下では例を書きます。

関数、クラスやメソッドへのコメント (簡易)
/// 関数の概要を記入します。               
function func($a, $b) {
 ・
 ・
}

関数、クラスやメソッドへのコメント
/**
 * 一行目は関数の概要を記入します。
 * @author  スクリプト作者
 * @date    日付
 * @version バージョン
 * @note    注釈を記述
 * @param   $a ここにパラメータ$aのコメントを記入します。
 * @param   $b ここにパラメータ$bのコメントを記入します。
 * @return  ここに関数の戻り値を記入します。
*/
function func($a, $b) {
 ・
 ・
}

プロパティへのコメント
class MyClass {
    public $var1;     ///< $var1のコメントを記入
}

ファイルへのコメント
/**
 * @file
 * ここから下に@author,@dateなどを記載します。
*/

Copyright©2001-2008 釣ったよ! All Right Reserved.    sg@tsuttayo.sytes.net