public function execute(array $args, array $options = array())
{
if (!count($args)) {
throw new ConsoleException("Missing subcommand name");
}
$command = ucfirst(Utils::camelize(array_shift($args)));
$methodName = "execute{$command}";
if (!method_exists($this, $methodName)) {
throw new ConsoleException("Command '{$command}' does not exist");
}
$method = new ReflectionMethod($this, $methodName);
$params = Utils::computeFuncParams($method, $args, $options);
return $method->invokeArgs($this, $params);
}