/** * Load all taks * * @param string $task_dir the task dir path */ private function load_all_tasks($task_dir) { if (!is_dir($task_dir)) { throw new Ruckusing_Exception(sprintf("Task dir: %s does not exist", $task_dir), Ruckusing_Exception::INVALID_ARGUMENT); return false; } $namespaces = scandir($task_dir); foreach ($namespaces as $namespace) { if ($namespace == '.' || $namespace == '..' || !is_dir($task_dir . DIRECTORY_SEPARATOR . $namespace)) { continue; } $files = scandir($task_dir . DIRECTORY_SEPARATOR . $namespace); $regex = '/^(\\w+)\\.php$/'; foreach ($files as $file) { //skip over invalid files if ($file == '.' || $file == ".." || !preg_match($regex, $file, $matches)) { continue; } require_once $task_dir . DIRECTORY_SEPARATOR . $namespace . DIRECTORY_SEPARATOR . $file; $klass = Ruckusing_Util_Naming::class_from_file_name($task_dir . DIRECTORY_SEPARATOR . $namespace . DIRECTORY_SEPARATOR . $file); $task_name = Ruckusing_Util_Naming::task_from_class_name($klass); $this->register_task($task_name, new $klass($this->get_adapter())); } } }
/** * test class name from string */ public function test_class_name_from_string() { $klass = 'Task/Db/Schema.php'; $this->assertEquals('Task_Db_Schema', Ruckusing_Util_Naming::class_from_file_name($klass)); }