shell = $shell; } protected function writeln($str) { $this->shell->writeln($str); } abstract public function getName(); public function getDescription() {} public function getHelp() {} public function run(array $args) { call_user_func_array([$this,"execute"], $args); } }