1. phpDocumentor とは何ですか?
PHPDocumentor は、標準のアノテーションを備えた PHP プログラム用に、相互参照、インデックス作成、その他の機能を備えた API ドキュメントを迅速に生成できるツールです。旧バージョンは phpdoc でしたが、1.3.0 からは phpDocumentor に名前が変更されました。同時に、クライアントのブラウザ上でドキュメントを生成し、ドキュメントを phpDocumentor に変換できるようになりました。 PDF、HTML、CHM にはいくつかの形式があり、非常に便利です。
PHPDocumentor が動作すると、指定されたディレクトリの下にある PHP ソース コードをスキャンし、キーワードをスキャンし、分析が必要なコメントをインターセプトし、コメント内の特別なタグを分析して XML ファイルを生成し、それに基づいて分析されたクラスとモジュール情報、対応するインデックスの確立、xml ファイルの生成、およびカスタマイズされたテンプレートを使用して、生成された xml ファイルの指定された形式でファイルを出力します。
2. phpDocumentor をインストールします。
pear の他のモジュールと同様に、phpDocumentor のインストールも 2 つの方法に分かれています: 自動インストールと手動インストール。どちらの方法も非常に便利です。 pear を介して自動的にインストールします
コマンド ラインで入力します
pear install PhpDocumentor
b. 手動インストール
http://manual.phpdoc.org/ から PhpDocumentor の最新バージョン (現在 1.4.0) をダウンロードし、コンテンツを解凍します。
3. PhpDocumentor を使用してドキュメントを生成する方法
コマンド ライン方法:
phpDocumentor があるディレクトリで、
Php –h
と入力して詳細なパラメーター リストを取得します。そのうちのいくつかの重要なパラメーターは次のとおりです。 :
-f 解析対象のファイル名、カンマ区切りの複数のファイル
-d 解析対象のディレクトリ、カンマ区切りの複数のディレクトリ
-t 生成されたドキュメントの保存パス
-o 出力ドキュメント形式の場合、構造は出力形式: コンバータ名: テンプレート ディレクトリです。
例: phpdoc -o HTML:frames:earthli -f test.php -t docs
Web インターフェースの生成
新しい phpdoc では、コマンドラインでドキュメントを生成するだけでなく、クライアント上のドキュメント ブラウザ上でドキュメントを生成するには、具体的な方法として、まず PhpDocumentor のコンテンツを Apache ディレクトリに配置し、ブラウザからアクセスできるようにします。 アクセス後、次のインターフェイスが表示されます。ファイル ボタンをクリックして、処理する php ファイルを選択するか、このインターフェイスで無視するファイルを指定して、特定のファイルの処理を無視することもできます。
次に、出力ボタンをクリックして、生成されたドキュメントの保存パスと形式を選択します。
最後に作成をクリックすると、phpdocumentor が自動的にドキュメントの生成を開始し、生成の進行状況とステータスが下部に表示されます。成功すると、「
Total Documentation Time: 1 秒」と表示されます。
done
Operation Completed!!
その後、生成されたドキュメントが PDF 形式の場合、名前はデフォルトで表示されます。ドキュメント.pdf。
4. PHP コードに標準化されたコメントを追加する
PHPDocument はソース コードのコメントからドキュメントを生成するため、プログラムにコメントするプロセスはドキュメントをコンパイルするプロセスでもあります。
この観点から、PHPdoc は、適切なプログラミング習慣を身につけ、仕様書とクリア テキストを使用してプログラムに注釈を付けるよう努めることを奨励します。同時に、ドキュメントの非同期開発やその後のドキュメントの更新を多かれ少なかれ回避します。いくつかの質問。
phpdocumentor では、コメントはドキュメント コメントとドキュメント以外のコメントに分けられます。
いわゆるドキュメント コメントは、特定のキーワードの前に配置される複数行のコメントです。特定のキーワードとは、class、var など、phpdoc で分析できるキーワードを指します。詳細については、付録 1 を参照してください。
キーワードの前にないコメント、または標準化されていないコメントは非ドキュメント コメントと呼ばれ、これらのコメントは phpdoc によって分析されず、生成する API ドキュメントには表示されません。
3.2 ドキュメント コメントの書き方:
すべてのドキュメント コメントは /** で始まる複数行のコメントであり、phpDocumentor では DocBlock と呼ばれます。DocBlock はソフトウェア開発者によって作成された重要なコメントを指します。キーワードを使用すると、他の人がこのキーワードの具体的な目的とその使用方法を知ることができます。 PhpDocumentor では、DocBlock に次の情報が含まれると規定しています。
1. 関数の簡単な説明領域
2. マーク タグ
ドキュメント コメントの最初の行は、関数の説明領域です。テキストは通常、このクラス、メソッド、または関数の関数を簡単に説明します。関数の簡単な説明のテキストは、生成されたドキュメントのインデックス領域に表示されます。関数説明領域の内容は、空白行で終了することもできます。
関数説明領域の後には、詳細な説明領域が続きます。この部分では、主に API の機能と目的を詳しく説明します。可能であれば、使用例なども教えていただければ幸いです。このセクションでは、API 関数またはメソッドの一般的な目的と使用法を明確にすることに重点を置き、それがクロスプラットフォームであるかどうか (関係する場合) を示す必要があります。プラットフォーム関連の情報については、一般的な情報とは異なるものとして扱う必要があります。通常のアプローチは、新しい行を開始してから、特定のプラットフォームに関する注意事項や特別な情報を書き込むことです。この情報は、読者が境界条件、パラメーター範囲、ブレークポイントなどの対応するテスト情報を書き込むことができるようにするのに十分です。
の後にも空行があり、その後にドキュメント タグがあり、主に呼び出しパラメーターの型、戻り値と型、継承関係、関連するメソッド/関数などの技術情報を示します。
ドキュメントタグについては、セクション 4: ドキュメントタグを参照してください。
ドキュメントのコメントで などのタグを使用することもできます。詳細については、付録 2 を参照してください。
以下はドキュメント コメントの例です
/**
* 関数 add、2 つの数値の加算を実装します
*
* 単純な加算計算。この関数は 2 つの数値 a と b を受け入れ、それらの合計 c を返します
*
* @ param int addend
* @param int addend
* @return integer
*/
function Add($a, $b) {
return $a $b;
}
生成されるドキュメントは次のとおりです。
Add
integer Add( int $a, int $b)
[line 45]
2 つの数値の加算を実装する関数 add
Constants単純な加算計算。この関数は 2 つの数値 a と b を受け入れ、それらの合計 c
パラメータ
• int $a - addend
• int $b - summand
5 を返します。ドキュメント タグ:
ドキュメント タグの使用範囲は、タグを使用して変更できるキーワードまたはその他のドキュメント タグを指します。
すべてのドキュメント タグは、各行の * の後に @ で始まります。 @マークが段落の途中にある場合、通常の内容として扱われ無視されます。
@access
使用範囲: class、function、var、define、module
このタグは、キーワードのアクセス許可を示すために使用されます: private、public、または protected
@author
author
@copyright
使用範囲: class、function、var、define、module、use
著作権情報を示します
@deprecated
使用範囲: class、function、var、define、module、 constent 、 global、 include
未使用または廃止されたキーワードを示します
@example
このタグは、ファイル コンテンツの一部を解析し、それらを強調表示するために使用されます。 Phpdoc は、このタグで指定されたファイル パスからファイルの内容を読み取ろうとします
@const
Usingscope:define
php での定義の定数を示すために使用されます
@final
Usingscope : class ,function,var
は、キーワードが最終的なクラス、メソッド、または属性であることを示し、派生と変更が禁止されています。
@filesource
例と似ていますが、このタグが現在解析されている PHP ファイルの内容を直接読み取って表示する点が異なります。
@global
この関数で参照されるグローバル変数を示します
@ingore
は、ドキュメント内の指定されたキーワードを無視するために使用されます
@license
は、HTML タグの < に相当します;a>、最初に URL、次に表示するコンテンツ
たとえば、Baidu は次のように記述できます。 @license http://www.baidu.com Baidu
@link
ライセンス
と似ていますが、リンク
@name
キーワードを指定してドキュメント内のキーワードを指定することもできますエイリアス。
@package
使用範囲: ページ レベル -> 定義、関数、インクルード
クラス レベル -> クラス、変数、メソッド
は 1 つまたは複数のキーワードを論理的に組み合わせるために使用されます グループに割り当てられます。
@abstrcut
現在のクラスが抽象クラスであることを示します
@param
関数のパラメータを指定します
@return
メソッドまたは関数の戻りポインタを指定します
@static
Guan Jianzi が静的であることを示します。
@var
変数の型を示します
@version
バージョン情報を示します
@todo
改善すべき領域または実装しない領域を示します
@throws
それを示しますこの関数はエラー例外をスローする可能性があり、非常にまれです。
上記のように、通常のドキュメント タグは各行の先頭に @ を付ける必要があります。さらに、{@} 式を使用するインライン タグと呼ばれるタグもあります。
{@link}
使い方は @link と同じです
{@source}
関数またはメソッドの内容を表示します
6.一部のコメント仕様
a. コメントは
/**
* XXXXXXX
*/
b. グローバル変数を参照する関数の場合は、glboal タグを使用する必要があります。
c. 変数の場合、その型は var (int、string、bool...) でマークされる必要があります。
d. 関数は、param および return マーカーを通じてそのパラメーターと戻り値を示す必要があります。 2 回以上使用されるキーワードについては、冗長なものは inore によって無視され、1 つだけが保持される必要があります。
f 他の関数またはクラスが呼び出される場合は、link または他のタグを使用して対応する部分にリンクする必要があります。文書化を容易にするため。
g. コードの読みやすさを向上させるために、必要に応じてドキュメント以外のコメントを使用します。
h. 可能な限り文章ではなくフレーズを使用し、説明内容は簡潔かつ要点を絞ったものにしてください。
i. グローバル変数、静的変数、および定数は、対応するタグで記述する必要があります
7. 概要
phpDocumentor は、標準化されたコメントを作成し、簡単に生成できるドキュメント生成ツールです。明確に構造化されたドキュメントは、コードのアップグレード、メンテナンス、引き継ぎなどに非常に役立ちます。
phpDocumentor の詳細な手順については、公式 Web サイト
http://manual.phpdoc.org/
8 で確認できます。付録
付録 1:
phpdoc で認識できるキーワード:
Include
Require
include_once
require_once
define
function
global
class
付録 2
ドキュメントで使用できるタグ<br> > <br><br><br><samp><br><br>付録 3: 🎜 > <br>仕様コメントを含む php コードの一部: <br><strong></strong><br>コードをコピー <br><p class="codetitle"> コードは次のとおりです: <span style="CURSOR: pointer" onclick="doCopy('code53020')"><u></u> <?php </span>/**</p>* サンプル ファイル 2、phpDocumentor クイックスタート <p class="codebody" id="code53020">* <BR>* このファイルは、DocBlock とタグを通じて <BR>* コード内ドキュメントに含めることができる豊富な情報を示します。 <BR>* @author Greg Beaver <[email]celllog@php.net[/email]> <br>* @バージョン 1.0 <br>* @パッケージサンプル <br>*/ <br>// サンプル ファイル #1 <br>/**<br>* phpDocumentor の解析能力を示すためのダミーのインクルード値 <br>*/ <br>include_once 'sample3.php'; *<br>* 特別なグローバル変数宣言 DocBlock <br>* @global integer $GLOBALS['_myvar'] <br>* @name $_myvar <br>*/ <br>$GLOBALS['_myvar'] = 6; <br>/**<br>* 定数 <br>*/ <br>/**<br>* 最初の定数 <br>*/ <br>define('testing', 6); <br> /**<br>* 2 番目の定数 <br>*/ <br>define('anotherconstant', strlen('hello')); <br>/**<br>* サンプル関数 docblock <br>* @global string この関数が $_myvar を使用するという事実を文書化します <br>* @staticvar integer $staticvar これは実際に返されるものです <br>* @param string $param1 name to宣言 <br>* @param string $param2 名前の値 <br>* @return integer <br>*/ <br>function firstFunc($param1) , $param2 = 'オプション') { <br>static $staticvar = 7; <br>return $staticvar; <br>/**<br>* 最初のクラス例。これは <br>* ファイルの先頭にある手続き型のものと同じパッケージ内にあります。 <br>* @package sample <br>* @subpackageclasses <br>*/ <br> class myclass { <br> /**<br>* サンプルのプライベート変数。これは --parseprivate <br>* オプション <br>* @accessprivate <br>* @var integer|string <br> で非表示にすることができます*/ <br>var $firstvar = 6; <br>/**<br>* @link http://www.example.com リンク例 <br>* @see myclass() <br>* @uses testing, anotherconstant <br>* @var array <br>*/ <br>var $secondvar = <br>array( <br>'スタッフ' => <br>array( <br>6, <br> 17, <br>'armadillo' <br>), <br>testing => anotherconstant <br>/** <br>* コンストラクターは {@link $firstvar} を設定します <br>*/ <br>関数 myclass() { <br>$this->firstvar = 7; <br>} <br>/**<br>* $paramie に基づいてものを返します <br>* @param boolean $paramie <br>* @return integer|babyclass <br>*/ <br>関数parentfunc($paramie) { <br>if ($ paramie) { <br>return 6; <br>} else { <br>return new babyclass; <br>} <br>} <br>/**<br>* @パッケージサンプル1 <br>* / <br>class babyclass extends myclass { <br>/**<br>* 生命、宇宙、そしてすべてに対する答え <br>* @var integer <br>*/ <br>var $secondvar = 42; <br>/**<br>* 構成値 <br>* @var 配列 <br>*/ <br>var $thirdvar; /**<br>* 親コンストラクターを呼び出し、{@link $firstvar} をインクリメントします <br> */ <br>function babyclass() { <br>parent::myclass(); <br>$this->firstvar; <br>/**<br>* これは常に myclass を返します <br>* @param は無視されました $paramie <br>* @return myclass <br>* / <br>functionparentfunc ($paramie) { <br>return new myclass <br>} <br>} <br>?>
<br></span></p></samp>