/** * 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 = Kodoc::classes($list); $classes = array(); foreach ($list as $class) { // Skip transparent extension classes if (Kodoc::is_transparent($class)) { continue; } $_class = new ReflectionClass($class); $methods = array(); foreach ($_class->getMethods() as $_method) { $declares = $_method->getDeclaringClass()->name; // Remove the transparent prefix from declaring classes if ($child = Kodoc::is_transparent($declares)) { $declares = $child; } if ($declares === $_class->name or $declares === "Core") { $methods[] = $_method->name; } } sort($methods); $classes[$_class->name] = $methods; } return $classes; }
/** * Tests Kodoc::is_transparent * * Checks that a selection of transparent and non-transparent classes give expected results * * @group kohana.userguide.3529-configurable-transparent-classes * @dataProvider provider_transparent_classes * @param mixed $expected * @param string $class * @param array $classes */ public function test_transparent_classes($expected, $class, $classes) { $result = Kodoc::is_transparent($class, $classes); $this->assertSame($expected, $result); }