例661 ファイルでreflectionを実行
$r = new Zend_Reflection_File($filename);
printf(
"===> The %s file\n".
" has %d lines\n",
$r->getFileName(),
$r->getEndLine()
);
$classes = $r->getClasses();
echo " It has " . count($classes) . ":\n";
foreach ($classes as $class) {
echo " " . $class->getName() . "\n";
}
$functions = $r->getFunctions();
echo " It has " . count($functions) . ":\n";
foreach ($functions as $function) {
echo " " . $function->getName() . "\n";
}
例662 クラスでreflectionを実行
$r = new Zend_Reflection_Class($class);
printf(
"クラスレベルのdocblockの短い記述: %s\n".
"クラスレベルのdocblockの長い記述:\n%s\n",
$r->getDocblock()->getShortDescription(),
$r->getDocblock()->getLongDescription(),
);
//宣言するファイルreflectionを取得
$file = $r->getDeclaringFile();
例663 メソッドでreflectionを実行
$r = new Zend_Reflection_Method($class, $name);
printf( "Method '%s':\n", $r->getName());
foreach ($r->getParameters() as $key => $param) {
printf(
"Param at position '%d' is of type '%s'\n",
$key,
$param->getType()
);
}
例664 docblockでreflectionを実行
$r = new Zend_Reflection_Method($class, $name);
$docblock = $r->getDocblock();
printf(
"短い記述: %s\n".
"長い記述:\n%s\n",
$r->getDocblock()->getShortDescription(),
$r->getDocblock()->getLongDescription(),
);
foreach ($docblock->getTags() as $tag) {
printf(
"Annotation tag '%s' has the description '%s'\n",
$tag->getName(),
$tag->getDescription()
);
}