/** * Get all classes and methods of files in a list. * * > I personally don't like this as it was used on the index page. Way too much stuff on one page. It has potential for a package index page though. * > For example: class_methods( Kohana::list_files('classes/sprig') ) could make a nice index page for the sprig package in the api browser * > ~bluehawk * */ public static function class_methods(array $list = NULL) { $list = Docs::classes($list); $classes = array(); foreach ($list as $class) { $_class = new ReflectionClass($class); if (stripos($_class->name, 'MyQEE') === 0) { // Skip the extension stuff stuff continue; } $methods = array(); foreach ($_class->getMethods() as $_method) { $declares = $_method->getDeclaringClass()->name; if (stripos($declares, 'MyQEE') === 0) { // Remove "Kohana_" $declares = substr($declares, 7); } if ($declares === $_class->name) { $methods[] = $_method->name; } } sort($methods); $classes[$_class->name] = $methods; } return $classes; }
loader_import('docs.Docs'); loader_import('docs.Filters'); loader_import('docs.Functions'); $data = array(); $data['packages'] = docs_cache('packages'); if (!is_array($data['packages'])) { $data['packages'] = docs_cache_store(Docs::packages($parameters['current']), 'packages'); } if (strpos($parameters['package'], '.') !== false) { if (!in_array($parameters['package'], $data['packages']) && $data['package'] != $data['current']) { die('Invalid package!'); } $data['package'] = $parameters['package']; $data['classes'] = docs_cache('classes', $parameters['package']); if (!is_array($data['classes'])) { $data['classes'] = docs_cache_store(Docs::classes($parameters['package']), 'classes', $parameters['package']); } $data['functions'] = docs_cache('functions', $parameters['package']); if (!is_array($data['functions'])) { $data['functions'] = docs_cache_store(Docs::functions($parameters['package']), 'functions', $parameters['package']); } if ($parameters['class']) { if (!Docs::isClass($parameters['class'], $data['classes'])) { die('Invalid class!'); } $data['class'] = $parameters['class']; if ($parameters['class'] == '_functions_') { $functions = docs_cache('func_data', $parameters['package']); if (!is_array($functions)) { $functions = docs_cache_store(Docs::getFunctions($parameters['package']), 'func_data', $parameters['package']); }