public static function getClass($name)
{
// accepted names :
// PHP full name : Analyzer\\Type\\Class
// PHP short name : Type\\Class
// Human short name : Type/Class
// Human shortcut : Class (must be unique among the classes)
if (strpos($name, '\\') !== false) {
if (substr($name, 0, 16) == 'Exakat\\Analyzer\\') {
$class = $name;
} else {
$class = 'Exakat\\Analyzer\\' . $name;
}
} elseif (strpos($name, '/') !== false) {
$class = 'Exakat\\Analyzer\\' . str_replace('/', '\\', $name);
} elseif (strpos($name, '/') === false) {
self::initDocs();
$found = self::$docs->guessAnalyzer($name);
if (count($found) == 0) {
return false;
// no class found
} elseif (count($found) == 1) {
$class = $found[0];
} else {
// too many options here...
return false;
}
} else {
$class = $name;
}
if (class_exists($class)) {
$actualClassName = new \ReflectionClass($class);
if ($class !== $actualClassName->getName()) {
// problems with the case
return false;
} else {
return $class;
}
} else {
return false;
}
}
public function run() { $project = 'test'; // Check for requested file if (!empty($this->config->filename) && !file_exists($this->config->filename)) { throw new NoSuchFile($this->config->filename); } elseif (!empty($this->config->dirname) && !file_exists($this->config->dirname)) { throw new NoSuchDir($this->config->filename); } // Check for requested analyze $analyzer = $this->config->program; if (Analyzer::getClass($analyzer)) { $analyzers_class = array($analyzer); } else { $r = Analyzer::getSuggestionClass($analyzer); if (count($r) > 0) { echo 'did you mean : ', implode(', ', str_replace('_', '/', $r)), "\n"; } throw new NoSuchAnalyzer($analyzer); } display("Cleaning DB\n"); $clean = new CleanDb($this->gremlin, $this->config, Tasks::IS_SUBTASK); $clean->run(); $load = new Load($this->gremlin, $this->config, Tasks::IS_SUBTASK); $load->run(); unset($load); display("Project loaded\n"); $analyze = new Analyze($this->gremlin, $this->config, Tasks::IS_SUBTASK); $analyze->run(); unset($analyze); $results = new Results($this->gremlin, $this->config, Tasks::IS_SUBTASK); $results->run(); unset($results); display("Analyzed project\n"); }