public function run() { if ($_SERVER['argc'] < 2) { TaskErrors::NoTasksFound(); } $task =& $_SERVER['argv'][1]; if ($task === 'help') { $this->displayHelp(); } else { if (!isset($this->tasks[$task])) { TaskErrors::taskNotExists($task); } for ($i = 2; $i < $_SERVER['argc']; ++$i) { $size = strlen($_SERVER['argv'][$i]); if (mb_substr($_SERVER['argv'][$i], 0, 2) === '--' && $size > 2) { $this->catchOption(mb_substr($_SERVER['argv'][$i], 2), $task); } else { if ($_SERVER['argv'][$i][0] === '-' && $size > 1) { $this->catchShortcut(mb_substr($_SERVER['argv'][$i], 1), $task); } else { $this->catchArg($_SERVER['argv'][$i], $task); } } } $this->process($this->tasks[$task]); } }