public static function get_class_documentation(midgard_reflection_class $reflectionclass) { $class_documentation = array(); $class_documentation['docblock'] = midgardmvc_core_helpers_documentation::render_docblock($reflectionclass->getDocComment()); $parent_class = $reflectionclass->getParentClass(); if ($parent_class) { $class_documentation['extends'] = $parent_class->getName(); $class_documentation['extends_url'] = midgardmvc_core::get_instance()->dispatcher->generate_url('midcom_documentation_class', array('class' => $parent_class->getName())); } return $class_documentation; }
public function get_class(array $args) { $this->midgardmvc->authorization->require_user(); $this->data['class'] = $args['class']; if (!class_exists($this->data['class'])) { throw new midgardmvc_exception_notfound("Class {$this->data['class']} not defined"); } $reflectionclass = new midgard_reflection_class($this->data['class']); $this->data['class_documentation'] = midgardmvc_core_helpers_documentation::get_class_documentation($reflectionclass); $this->data['properties'] = midgardmvc_core_helpers_documentation::get_property_documentation($this->data['class']); $this->data['signals'] = midgardmvc_core_helpers_documentation::get_signal_documentation($this->data['class']); $this->data['methods'] = array(); $this->data['abstract_methods'] = array(); $this->data['static_methods'] = array(); $reflectionmethods = $reflectionclass->getMethods(); foreach ($reflectionmethods as $method) { $method_docs = midgardmvc_core_helpers_documentation::get_method_documentation($this->data['class'], $method->getName()); if (isset($method_docs['abstract'])) { $this->data['abstract_methods'][] = $method_docs; continue; } elseif (isset($method_docs['static'])) { $this->data['static_methods'][] = $method_docs; continue; } $this->data['methods'][] = $method_docs; } }