setName('makemodel') ->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 { ModelUtils::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 : '') . '\\model'; } }