setName('sw:gii') ->addOption('make', 'm', InputArgument::OPTIONAL) ->addOption('table', 't', InputArgument::OPTIONAL) ->addOption('database', 'd', InputArgument::OPTIONAL) ->addOption('all-table', null, InputOption::VALUE_NONE, 'is run daemonize') ->setDescription('php kiri.php sw:gii --table u_user --database users --make model'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int * @throws Exception */ public function execute(InputInterface $input, OutputInterface $output): int { try { $database = Kiri::getDi()->get(DatabasesProviders::class); /** @var Gii $gii */ $gii = Kiri::getDi()->get(Gii::class); if (($db = $input->getOption('database')) != null) { return count($gii->run($database->get($db), $input)); } $action = $input->getOption('make'); if (!in_array($action, ['model', 'controller'])) { return count($gii->run(null, $input)); } $array = []; foreach (\config('databases.connections') as $key => $connection) { $array[$key] = $gii->run($database->get($key), $input); } $output->writeln(json_encode($array, JSON_UNESCAPED_UNICODE)); return 0; } catch (\Throwable $throwable) { $output->writeln(throwable($throwable)); return 1; } } }