public function classDoc(&$classes)
{
$this->depth++;
if ($classes) {
foreach ($classes as $class) {
echo $this->showDepth(), '- ', $class->modifiers();
if ($class->isInterface()) {
echo 'interface ';
} elseif ($class->isTrait()) {
echo 'trait ';
} else {
echo 'class ';
}
echo $class->packageName(), '\\', $class->name();
if ($class->superclass()) {
if (isset($classes[$class->superclass()])) {
$superclass = $classes[$class->superclass()];
echo ' extends ', $superclass->packageName(), '\\', $superclass->name();
} else {
echo ' extends ', $class->superclass();
}
}
$interfaces =& $class->interfaces();
if ($interfaces) {
echo ' implements';
foreach ($interfaces as $interface) {
echo ' ', $interface->packageName(), '\\', $interface->name();
}
}
$traits =& $class->traits();
if ($traits) {
echo ' uses';
foreach ($traits as $trait) {
echo ' ', $trait->packageName(), '\\', $trait->name();
}
}
echo ' [', $class->location(), ']';
echo "\n";
$this->docComment($class);
$this->fieldDoc($class->constants(), TRUE);
$this->fieldDoc($class->fields(), TRUE);
$this->methodDoc($class->methods());
}
}
$this->depth--;
}