function find_modules($dirname) { $list = glob("{$dirname}/*.php"); foreach (glob("{$dirname}/*", GLOB_ONLYDIR) as $name) { $list = array_merge($list, find_modules($name)); } return $list; }
<?php $alltests = array("tests" => array(), "uses" => array()); $files = find_modules(); foreach ($files as $file) { print "checking {$file}\n"; $data = file_get_contents("../detect/" . $file); $uses = find_uses($data); $tests = find_tests($data); foreach ($uses as $item) { $alltests['uses'][] = $item; } foreach ($tests as $item) { $alltests['tests'][] = $item; } } print_r($alltests); function find_tests($file) { $re = "/addtest\\([\"\\'](.*)[\"\\'],/"; preg_match_all($re, $file, $matches); return $matches[1]; } function find_uses($file) { $re = "/has\\([\"\\']([a-zA-Z-_]+)[\"\\']\\)/"; preg_match_all($re, $file, $matches); return $matches[1]; } function find_modules($d = "../detect/", $f = "*.js") {