setName('makecontroller')
->addArgument('name', Argument::OPTIONAL, "console name")
->setDescription('Create a new model class');
}
protected function execute(Input $input, Output $output)
{
$name = trim($input->getArgument('name'));
$classname = $this->getClassName($name);
try {
ControllerUtils::makeModel($classname);
$output->writeln('' . $this->type . ':' . $classname . ' created successfully.');
} catch (\Exception $e) {
$output->writeln('' . $e->getMessage() . '');
}
}
protected function getClassName($name)
{
if (strpos($name, '\\') !== false) {
return $name;
}
if (strpos($name, '@')) {
[$app, $name] = explode('@', $name);
} else {
$app = '';
}
if (strpos($name, '/') !== false) {
$name = str_replace('/', '\\', $name);
}
return $this->getNamespace($app) . '\\' . $name;
}
protected function getNamespace(string $app): string
{
return 'app' . ($app ? '\\' . $app : '') . '\\controller';
}
}