From 42300e0428850fbd1f6485a34b6c98690403dda9 Mon Sep 17 00:00:00 2001 From: Tim MacDonald Date: Wed, 20 Mar 2024 07:10:36 +1100 Subject: [PATCH] [5.x] Make commands lazy (#1399) * Make commands lazy * lint * lint * Fix soft dependency --- composer.json | 1 + src/Console/ClearCommand.php | 2 ++ src/Console/ClearMetricsCommand.php | 2 ++ src/Console/ContinueCommand.php | 2 ++ src/Console/ContinueSupervisorCommand.php | 2 ++ src/Console/ForgetFailedCommand.php | 2 ++ src/Console/HorizonCommand.php | 2 ++ src/Console/InstallCommand.php | 3 ++- src/Console/ListCommand.php | 2 ++ src/Console/PauseCommand.php | 2 ++ src/Console/PauseSupervisorCommand.php | 2 ++ src/Console/PublishCommand.php | 2 ++ src/Console/PurgeCommand.php | 2 ++ src/Console/SnapshotCommand.php | 2 ++ src/Console/StatusCommand.php | 2 ++ src/Console/SupervisorCommand.php | 2 ++ src/Console/SupervisorsCommand.php | 2 ++ src/Console/TerminateCommand.php | 2 ++ src/Console/TimeoutCommand.php | 2 ++ 19 files changed, 37 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 8ce0634b..6970246a 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,7 @@ "illuminate/support": "^9.21|^10.0|^11.0", "nesbot/carbon": "^2.17|^3.0", "ramsey/uuid": "^4.0", + "symfony/console": "^6.0|^7.0", "symfony/process": "^6.0|^7.0", "symfony/error-handler": "^6.0|^7.0" }, diff --git a/src/Console/ClearCommand.php b/src/Console/ClearCommand.php index a9ba8aa5..a2ebfb10 100644 --- a/src/Console/ClearCommand.php +++ b/src/Console/ClearCommand.php @@ -8,7 +8,9 @@ use Illuminate\Support\Arr; use Laravel\Horizon\Contracts\JobRepository; use Laravel\Horizon\RedisQueue; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:clear')] class ClearCommand extends Command { use ConfirmableTrait; diff --git a/src/Console/ClearMetricsCommand.php b/src/Console/ClearMetricsCommand.php index 35b503ac..bb35d719 100644 --- a/src/Console/ClearMetricsCommand.php +++ b/src/Console/ClearMetricsCommand.php @@ -4,7 +4,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\MetricsRepository; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:clear-metrics')] class ClearMetricsCommand extends Command { /** diff --git a/src/Console/ContinueCommand.php b/src/Console/ContinueCommand.php index 7a6050a3..6d6f773f 100644 --- a/src/Console/ContinueCommand.php +++ b/src/Console/ContinueCommand.php @@ -7,7 +7,9 @@ use Illuminate\Support\Str; use Laravel\Horizon\Contracts\MasterSupervisorRepository; use Laravel\Horizon\MasterSupervisor; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:continue')] class ContinueCommand extends Command { /** diff --git a/src/Console/ContinueSupervisorCommand.php b/src/Console/ContinueSupervisorCommand.php index c5643b3a..c97f17ed 100644 --- a/src/Console/ContinueSupervisorCommand.php +++ b/src/Console/ContinueSupervisorCommand.php @@ -6,7 +6,9 @@ use Illuminate\Support\Str; use Laravel\Horizon\Contracts\SupervisorRepository; use Laravel\Horizon\MasterSupervisor; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:continue-supervisor')] class ContinueSupervisorCommand extends Command { /** diff --git a/src/Console/ForgetFailedCommand.php b/src/Console/ForgetFailedCommand.php index 20114f33..7f8299a2 100644 --- a/src/Console/ForgetFailedCommand.php +++ b/src/Console/ForgetFailedCommand.php @@ -4,7 +4,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\JobRepository; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:forget')] class ForgetFailedCommand extends Command { /** diff --git a/src/Console/HorizonCommand.php b/src/Console/HorizonCommand.php index 36fcf1f9..53cb168a 100644 --- a/src/Console/HorizonCommand.php +++ b/src/Console/HorizonCommand.php @@ -6,7 +6,9 @@ use Laravel\Horizon\Contracts\MasterSupervisorRepository; use Laravel\Horizon\MasterSupervisor; use Laravel\Horizon\ProvisioningPlan; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon')] class HorizonCommand extends Command { /** diff --git a/src/Console/InstallCommand.php b/src/Console/InstallCommand.php index 67f0926c..71c88549 100644 --- a/src/Console/InstallCommand.php +++ b/src/Console/InstallCommand.php @@ -5,7 +5,9 @@ use Illuminate\Console\Command; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Str; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:install')] class InstallCommand extends Command { /** @@ -52,7 +54,6 @@ protected function registerHorizonServiceProvider() $namespace = Str::replaceLast('\\', '', $this->laravel->getNamespace()); if (file_exists($this->laravel->bootstrapPath('providers.php'))) { - // @phpstan-ignore-next-line ServiceProvider::addProviderToBootstrapFile("{$namespace}\\Providers\\HorizonServiceProvider"); } else { $appConfig = file_get_contents(config_path('app.php')); diff --git a/src/Console/ListCommand.php b/src/Console/ListCommand.php index 41a0f2b3..8f7f2967 100644 --- a/src/Console/ListCommand.php +++ b/src/Console/ListCommand.php @@ -4,7 +4,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\MasterSupervisorRepository; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:list')] class ListCommand extends Command { /** diff --git a/src/Console/PauseCommand.php b/src/Console/PauseCommand.php index 7b253afc..172ae520 100644 --- a/src/Console/PauseCommand.php +++ b/src/Console/PauseCommand.php @@ -7,7 +7,9 @@ use Illuminate\Support\Str; use Laravel\Horizon\Contracts\MasterSupervisorRepository; use Laravel\Horizon\MasterSupervisor; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:pause')] class PauseCommand extends Command { /** diff --git a/src/Console/PauseSupervisorCommand.php b/src/Console/PauseSupervisorCommand.php index ef9811a8..0e16a833 100644 --- a/src/Console/PauseSupervisorCommand.php +++ b/src/Console/PauseSupervisorCommand.php @@ -6,7 +6,9 @@ use Illuminate\Support\Str; use Laravel\Horizon\Contracts\SupervisorRepository; use Laravel\Horizon\MasterSupervisor; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:pause-supervisor')] class PauseSupervisorCommand extends Command { /** diff --git a/src/Console/PublishCommand.php b/src/Console/PublishCommand.php index c20d8131..c42f1ab8 100644 --- a/src/Console/PublishCommand.php +++ b/src/Console/PublishCommand.php @@ -3,7 +3,9 @@ namespace Laravel\Horizon\Console; use Illuminate\Console\Command; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:publish')] class PublishCommand extends Command { /** diff --git a/src/Console/PurgeCommand.php b/src/Console/PurgeCommand.php index 16070d5c..d2853b1f 100644 --- a/src/Console/PurgeCommand.php +++ b/src/Console/PurgeCommand.php @@ -9,7 +9,9 @@ use Laravel\Horizon\Contracts\SupervisorRepository; use Laravel\Horizon\MasterSupervisor; use Laravel\Horizon\ProcessInspector; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:purge')] class PurgeCommand extends Command { /** diff --git a/src/Console/SnapshotCommand.php b/src/Console/SnapshotCommand.php index 3718b371..4d75912a 100644 --- a/src/Console/SnapshotCommand.php +++ b/src/Console/SnapshotCommand.php @@ -5,7 +5,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\MetricsRepository; use Laravel\Horizon\Lock; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:snapshot')] class SnapshotCommand extends Command { /** diff --git a/src/Console/StatusCommand.php b/src/Console/StatusCommand.php index ba47910a..b67c228e 100644 --- a/src/Console/StatusCommand.php +++ b/src/Console/StatusCommand.php @@ -4,7 +4,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\MasterSupervisorRepository; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:status')] class StatusCommand extends Command { /** diff --git a/src/Console/SupervisorCommand.php b/src/Console/SupervisorCommand.php index a4856c6c..750a05a2 100644 --- a/src/Console/SupervisorCommand.php +++ b/src/Console/SupervisorCommand.php @@ -6,7 +6,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\SupervisorFactory; use Laravel\Horizon\SupervisorOptions; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:supervisor')] class SupervisorCommand extends Command { /** diff --git a/src/Console/SupervisorsCommand.php b/src/Console/SupervisorsCommand.php index 4272646f..03652f9a 100644 --- a/src/Console/SupervisorsCommand.php +++ b/src/Console/SupervisorsCommand.php @@ -4,7 +4,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\Contracts\SupervisorRepository; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:supervisors')] class SupervisorsCommand extends Command { /** diff --git a/src/Console/TerminateCommand.php b/src/Console/TerminateCommand.php index c0d8d476..f49b118d 100644 --- a/src/Console/TerminateCommand.php +++ b/src/Console/TerminateCommand.php @@ -9,7 +9,9 @@ use Illuminate\Support\Str; use Laravel\Horizon\Contracts\MasterSupervisorRepository; use Laravel\Horizon\MasterSupervisor; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:terminate')] class TerminateCommand extends Command { use InteractsWithTime; diff --git a/src/Console/TimeoutCommand.php b/src/Console/TimeoutCommand.php index f9173d47..1fae9c73 100644 --- a/src/Console/TimeoutCommand.php +++ b/src/Console/TimeoutCommand.php @@ -5,7 +5,9 @@ use Illuminate\Console\Command; use Laravel\Horizon\MasterSupervisor; use Laravel\Horizon\ProvisioningPlan; +use Symfony\Component\Console\Attribute\AsCommand; +#[AsCommand(name: 'horizon:timeout')] class TimeoutCommand extends Command { /**