From 4025afd074839c5de710b2f9e53c90c9498dc88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Wed, 22 Jun 2022 16:29:42 +0800 Subject: [PATCH] modify plugin name --- GiiCommand.php | 53 +++++++++++++++++++++++++----------------------- GiiProviders.php | 21 ++++++++++--------- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/GiiCommand.php b/GiiCommand.php index c5136fe..3efa2f3 100644 --- a/GiiCommand.php +++ b/GiiCommand.php @@ -6,6 +6,7 @@ namespace Gii; use Exception; use Kiri; +use Kiri\Di\LocalService; use Kiri\Abstracts\Config; use Kiri\Exception\ConfigException; use Symfony\Component\Console\Command\Command; @@ -26,15 +27,19 @@ class GiiCommand extends Command public string $description = './snowflake sw:gii make=model|controller|task|interceptor|limits|middleware name=xxxx'; + private LocalService $service; + + /** * */ protected function configure() { + $this->service = Kiri::getDi()->get(LocalService::class); $this->setName('sw:gii') - ->addOption('make','m', InputArgument::OPTIONAL) - ->addOption('name','t', InputArgument::OPTIONAL) - ->addOption('databases','d', InputArgument::OPTIONAL) + ->addOption('make', 'm', InputArgument::OPTIONAL) + ->addOption('name', 't', InputArgument::OPTIONAL) + ->addOption('databases', 'd', InputArgument::OPTIONAL) ->setDescription('./snowflake sw:gii make=model|controller|task|interceptor|limits|middleware name=xxxx'); } @@ -43,34 +48,32 @@ class GiiCommand extends Command * @param InputInterface $input * @param OutputInterface $output * @return int - * @throws ConfigException * @throws Exception */ public function execute(InputInterface $input, OutputInterface $output): int { - /** @var Gii $gii */ - $gii = Kiri::app()->get('gii'); - - $connections = Kiri::app(); - if (($db = $input->getOption('databases')) != null) { - $gii->run($connections->get($db), $input); + try { + /** @var Gii $gii */ + $gii = $this->service->get('gii'); + if (($db = $input->getOption('databases')) != null) { + $gii->run($this->service->get($db), $input); + } else { + $action = $input->getOption('make'); + if (!in_array($action, ['model', 'controller'])) { + $gii->run(null, $input); + } else { + $array = []; + foreach (Config::get('databases.connections') as $key => $connection) { + $array[$key] = $gii->run($this->service->get($key), $input); + } + $output->writeln(json_encode($array, JSON_UNESCAPED_UNICODE)); + } + } + } catch (\Throwable $throwable) { + $output->writeln($throwable->getMessage()); + } finally { return 1; } - - $action = $input->getOption('make'); - if (!in_array($action, ['model', 'controller'])) { - $gii->run(null, $input); - return 1; - } - - $array = []; - foreach (Config::get('databases.connections') as $key => $connection) { - $array[$key] = $gii->run($connections->get($key), $input); - } - - $output->writeln(json_encode($array, JSON_UNESCAPED_UNICODE)); - - return 1; } } diff --git a/GiiProviders.php b/GiiProviders.php index 9330a94..0dad79b 100644 --- a/GiiProviders.php +++ b/GiiProviders.php @@ -5,10 +5,11 @@ declare(strict_types=1); namespace Gii; -use Exception; -use Kiri; use Kiri\Abstracts\Providers; -use Kiri\Application; +use Kiri\Di\LocalService; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; +use Symfony\Component\Console\Application; /** * Class DatabasesProviders @@ -19,16 +20,16 @@ class GiiProviders extends Providers /** - * @param Application $application - * @throws Exception + * @param LocalService $application + * @return void + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface */ - public function onImport(Application $application) + public function onImport(LocalService $application): void { $application->set('gii', ['class' => Gii::class]); - $container = Kiri::getDi(); - - $console = $container->get(\Symfony\Component\Console\Application::class); - $console->add($container->get(GiiCommand::class)); + $console = $this->container->get(Application::class); + $console->add($this->container->get(GiiCommand::class)); } }