diff --git a/src/devtool/src/ConfigProvider.php b/src/devtool/src/ConfigProvider.php index b920b4f8..574a6a3b 100644 --- a/src/devtool/src/ConfigProvider.php +++ b/src/devtool/src/ConfigProvider.php @@ -16,6 +16,7 @@ use Hypervel\Devtool\Generator\JobCommand; use Hypervel\Devtool\Generator\ListenerCommand; use Hypervel\Devtool\Generator\MailCommand; +use Hypervel\Devtool\Generator\MiddlewareCommand; use Hypervel\Devtool\Generator\ModelCommand; use Hypervel\Devtool\Generator\NotificationCommand; use Hypervel\Devtool\Generator\NotificationTableCommand; @@ -64,6 +65,7 @@ public function __invoke(): array NotificationCommand::class, MailCommand::class, PolicyCommand::class, + MiddlewareCommand::class, ], ]; } diff --git a/src/devtool/src/Generator/MiddlewareCommand.php b/src/devtool/src/Generator/MiddlewareCommand.php new file mode 100644 index 00000000..bc2f1ef1 --- /dev/null +++ b/src/devtool/src/Generator/MiddlewareCommand.php @@ -0,0 +1,44 @@ +setDescription('Create a new HTTP middleware class'); + + parent::configure(); + } + + protected function getStub(): string + { + return $this->getConfig()['stub'] ?? __DIR__ . ( + $this->input->getOption('psr15') + ? '/stubs/middleware.psr15.stub' + : '/stubs/middleware.stub' + ); + } + + protected function getDefaultNamespace(): string + { + return $this->getConfig()['namespace'] ?? 'App\Http\Middleware'; + } + + protected function getOptions(): array + { + return array_merge(parent::getOptions(), [ + ['psr15', null, InputOption::VALUE_NONE, 'Create a PSR-15 compatible middleware'], + ]); + } +} diff --git a/src/devtool/src/Generator/stubs/Middleware.stub b/src/devtool/src/Generator/stubs/Middleware.stub new file mode 100644 index 00000000..fbeb8ab1 --- /dev/null +++ b/src/devtool/src/Generator/stubs/Middleware.stub @@ -0,0 +1,21 @@ +handle($request); + } +} \ No newline at end of file diff --git a/src/devtool/src/Generator/stubs/middleware.psr15.stub b/src/devtool/src/Generator/stubs/middleware.psr15.stub new file mode 100644 index 00000000..fbeb8ab1 --- /dev/null +++ b/src/devtool/src/Generator/stubs/middleware.psr15.stub @@ -0,0 +1,21 @@ +handle($request); + } +} \ No newline at end of file diff --git a/src/devtool/src/Generator/stubs/middleware.stub b/src/devtool/src/Generator/stubs/middleware.stub new file mode 100644 index 00000000..0c5cc750 --- /dev/null +++ b/src/devtool/src/Generator/stubs/middleware.stub @@ -0,0 +1,18 @@ +