コード例 #1
0
 /**
  * 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()));
         }
     }
 }
コード例 #2
0
 /**
  * test task from class method
  */
 public function test_task_from_class_method()
 {
     $klass = "Task_Db_Schema";
     $this->assertEquals('db:schema', Ruckusing_Util_Naming::task_from_class_name($klass));
 }