setName('local:install') ->addArgument('module', Argument::REQUIRED, 'module name') ->setDescription('install catch local module'); } protected function execute(Input $input, Output $output) { $installedModule = $input->getArgument('module'); $install = new InstallLocalModule($installedModule); if (!$install->localModuleExist()) { while (true) { $modules = $install->getLocalModulesInfo(false); if (!count($modules)) { $output->error('Input module not found and All local modules had been enabled');exit; } $choose = ''; $i = 1; foreach ($modules as $k => $module) { $choose .= ($i++) . ':' . ($module['name']) . ($module['enable'] ? '(开启)' : '(未开启)') . PHP_EOL; } $answer = $output->ask($input, $choose); if (isset($modules[$answer-1])) { $installedModule = $modules[$answer - 1]['name']; break; } } } $install = new InstallLocalModule($installedModule); if (!$install->isModuleEnabled()) { $output->error($installedModule . ' has been enabled!'); exit; } if (!$install->done()) { $output->error(sprintf('module [%s] has been installed, You can use [php think enable:module $module] to start it.', $installedModule)); } $output->info(sprintf('module [%s] installed successfully', $installedModule)); } }