グローバルが効果的に初期化されるコードとしてあなたの例を取ります:
/**
* the primary database connection object
*
* @global resource $GLOBALS['db']
* @name $db
*/
$GLOBALS['db'] = getConnection(...);
ここでは、「@global datatype $globalvariablename」という形式を使用する必要があることに注意してください。また、「$GLOBALS['db']」の使用を「global $db」を示すコード内の他の場所と一致させる必要がある場合は、「@name $globalvariablename」タグを含める場所にも注意してください。代わりに、コード内で "$GLOBALS['db'] ではなく単に "$db = " を使用すると、@name タグが冗長になり不要になります。私としては、 $GLOBALS['db'] を使用することを選択します。したがって、コード内でグローバルを非常に明示的に表示したいという理由だけで、両方の global+name タグが必要です (少なくとも、グローバルをリファクタリングできない場合は ;-) )。
コード例で「global」キーワードを使用すると、グローバル変数の初期化ではなく、実際に関数/メソッド内にいることを意味します。その場合、メソッドの docblock には次の形式のグローバル タグが必要です。
/**
* my method that uses a global
*
* @global resource the universally available database connection object
*/
public function foo {
global $db;
// do stuff here that uses the $db connection
}
ここでの形式は「@global datatype description」であり、上記のものとは異なることに注意してください。また、ここには @name タグを入れ ません。
ここで、phpDocumentor はコード自体の「global $db」行を認識し、グローバル自体の初期化を個別に docblock した 場所を探します。
ドキュメントで何かを見るためには、そのような「@global」の使用法の両方が存在する必要があると思います.後者は、文書化されたメソッドがグローバルを使用していることを示し、前者はメソッドのドキュメントに情報があることを示します.その特定のグローバルについて表示します。
参考文献:
[1] -- @global -- http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.global.pkg.html
[2] -- @name -- http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.name.pkg.html