From 96478f34006bd43031690f375bbd4133238fd9f3 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Tue, 5 Jul 2016 23:25:39 +0200 Subject: [PATCH] Created the console application via a factory --- bin/cli | 8 +--- config/autoload/cli.global.php | 13 ++++++ config/autoload/services.global.php | 12 +++--- .../Command}/GenerateShortcodeCommand.php | 2 +- .../Command}/ResolveUrlCommand.php | 2 +- src/CLI/Factory/ApplicationFactory.php | 41 +++++++++++++++++++ 6 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 config/autoload/cli.global.php rename src/{CliCommands => CLI/Command}/GenerateShortcodeCommand.php (98%) rename src/{CliCommands => CLI/Command}/ResolveUrlCommand.php (98%) create mode 100644 src/CLI/Factory/ApplicationFactory.php diff --git a/bin/cli b/bin/cli index 8a2983c1..e400bef8 100755 --- a/bin/cli +++ b/bin/cli @@ -1,16 +1,10 @@ #!/usr/bin/env php addCommands([ - $container->get(GenerateShortcodeCommand::class), - $container->get(ResolveUrlCommand::class), -]); +$app = $container->get(CliApp::class); $app->run(); diff --git a/config/autoload/cli.global.php b/config/autoload/cli.global.php new file mode 100644 index 00000000..f1a36b7d --- /dev/null +++ b/config/autoload/cli.global.php @@ -0,0 +1,13 @@ + [ + 'commands' => [ + Command\GenerateShortcodeCommand::class, + Command\ResolveUrlCommand::class, + ] + ], + +]; diff --git a/config/autoload/services.global.php b/config/autoload/services.global.php index b3103ac3..9f4447f4 100644 --- a/config/autoload/services.global.php +++ b/config/autoload/services.global.php @@ -1,5 +1,5 @@ [ 'factories' => [ - Application::class => Container\ApplicationFactory::class, + Expressive\Application::class => Container\ApplicationFactory::class, + Console\Application::class => CLI\Factory\ApplicationFactory::class, // Url helpers Helper\UrlHelper::class => Helper\UrlHelperFactory::class, @@ -42,8 +44,8 @@ return [ Cache::class => CacheFactory::class, // Cli commands - CliCommands\GenerateShortcodeCommand::class => AnnotatedFactory::class, - CliCommands\ResolveUrlCommand::class => AnnotatedFactory::class, + CLI\Command\GenerateShortcodeCommand::class => AnnotatedFactory::class, + CLI\Command\ResolveUrlCommand::class => AnnotatedFactory::class, // Middleware Middleware\Routable\RedirectMiddleware::class => AnnotatedFactory::class, diff --git a/src/CliCommands/GenerateShortcodeCommand.php b/src/CLI/Command/GenerateShortcodeCommand.php similarity index 98% rename from src/CliCommands/GenerateShortcodeCommand.php rename to src/CLI/Command/GenerateShortcodeCommand.php index 68b076c3..ea6fc929 100644 --- a/src/CliCommands/GenerateShortcodeCommand.php +++ b/src/CLI/Command/GenerateShortcodeCommand.php @@ -1,5 +1,5 @@ get('config')['cli']; + $app = new CliApp(); + + $commands = isset($config['commands']) ? $config['commands'] : []; + foreach ($commands as $command) { + if (! $container->has($command)) { + continue; + } + + $app->add($container->get($command)); + } + + return $app; + } +}