From 4af7d6955632179da4a2d7768c1ebc20e6a4b567 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Wed, 2 Aug 2023 14:00:25 +0800 Subject: [PATCH] qqq --- src/Annotate/Delete.php | 8 +++++++- src/Annotate/Get.php | 16 +++++++++++----- src/Annotate/Post.php | 16 +++++++++++----- src/Annotate/Put.php | 8 +++++++- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/Annotate/Delete.php b/src/Annotate/Delete.php index 236e9e6..4fbf33f 100644 --- a/src/Annotate/Delete.php +++ b/src/Annotate/Delete.php @@ -6,6 +6,7 @@ namespace Kiri\Router\Annotate; use Exception; use Kiri\Router\Constrict\RequestMethod; use Kiri\Router\Interface\InjectRouteInterface; +use Kiri\Router\OptionsController; use Kiri\Router\Router; use ReflectionException; @@ -17,8 +18,9 @@ class Delete extends AbstractRequestMethod implements InjectRouteInterface /** * @param string $path * @param string $version + * @param bool $enableOption */ - public function __construct(readonly public string $path, readonly public string $version = 'v1') + public function __construct(readonly public string $path, readonly public string $version = 'v1', readonly public bool $enableOption = true) { } @@ -36,6 +38,10 @@ class Delete extends AbstractRequestMethod implements InjectRouteInterface $path = '/' . ltrim($this->path, '/'); Router::addRoute(RequestMethod::REQUEST_DELETE, $path, [$class, $method]); + if ($this->enableOption) { + $options = [di(OptionsController::class), 'index']; + Router::addRoute([RequestMethod::REQUEST_OPTIONS], $path, $options); + } } diff --git a/src/Annotate/Get.php b/src/Annotate/Get.php index afad291..a2243a6 100644 --- a/src/Annotate/Get.php +++ b/src/Annotate/Get.php @@ -6,6 +6,7 @@ namespace Kiri\Router\Annotate; use Exception; use Kiri\Router\Constrict\RequestMethod; use Kiri\Router\Interface\InjectRouteInterface; +use Kiri\Router\OptionsController; use Kiri\Router\Router; use ReflectionException; @@ -14,11 +15,12 @@ class Get extends AbstractRequestMethod implements InjectRouteInterface { - /** - * @param string $path - * @param string $version - */ - public function __construct(readonly public string $path, readonly public string $version = 'v1') + /** + * @param string $path + * @param string $version + * @param bool $enableOption + */ + public function __construct(readonly public string $path, readonly public string $version = 'v1', readonly public bool $enableOption = true) { } @@ -36,6 +38,10 @@ class Get extends AbstractRequestMethod implements InjectRouteInterface $path = '/' . ltrim($this->path, '/'); Router::addRoute(RequestMethod::REQUEST_GET, $path, [$class, $method]); + if ($this->enableOption) { + $options = [di(OptionsController::class), 'index']; + Router::addRoute([RequestMethod::REQUEST_OPTIONS], $path, $options); + } } } diff --git a/src/Annotate/Post.php b/src/Annotate/Post.php index 31bd9e3..82d89d9 100644 --- a/src/Annotate/Post.php +++ b/src/Annotate/Post.php @@ -6,6 +6,7 @@ namespace Kiri\Router\Annotate; use Exception; use Kiri\Router\Constrict\RequestMethod; use Kiri\Router\Interface\InjectRouteInterface; +use Kiri\Router\OptionsController; use Kiri\Router\Router; use ReflectionException; @@ -14,11 +15,12 @@ class Post extends AbstractRequestMethod implements InjectRouteInterface { - /** - * @param string $path - * @param string $version - */ - public function __construct(readonly public string $path, readonly public string $version = 'v1') + /** + * @param string $path + * @param string $version + * @param bool $enableOption + */ + public function __construct(readonly public string $path, readonly public string $version = 'v1', readonly public bool $enableOption = true) { } @@ -36,6 +38,10 @@ class Post extends AbstractRequestMethod implements InjectRouteInterface $path = '/' . ltrim($this->path, '/'); Router::addRoute(RequestMethod::REQUEST_POST, $path, [$class, $method]); + if ($this->enableOption) { + $options = [di(OptionsController::class), 'index']; + Router::addRoute([RequestMethod::REQUEST_OPTIONS], $path, $options); + } } diff --git a/src/Annotate/Put.php b/src/Annotate/Put.php index 227129e..bd9b0b6 100644 --- a/src/Annotate/Put.php +++ b/src/Annotate/Put.php @@ -6,6 +6,7 @@ namespace Kiri\Router\Annotate; use Exception; use Kiri\Router\Constrict\RequestMethod; use Kiri\Router\Interface\InjectRouteInterface; +use Kiri\Router\OptionsController; use Kiri\Router\Router; use ReflectionException; @@ -17,8 +18,9 @@ class Put extends AbstractRequestMethod implements InjectRouteInterface /** * @param string $path * @param string $version + * @param bool $enableOption */ - public function __construct(readonly public string $path, readonly public string $version = 'v1') + public function __construct(readonly public string $path, readonly public string $version = 'v1', readonly public bool $enableOption = true) { } @@ -36,6 +38,10 @@ class Put extends AbstractRequestMethod implements InjectRouteInterface $path = '/' . ltrim($this->path, '/'); Router::addRoute(RequestMethod::REQUEST_PUT, $path, [$class, $method]); + if ($this->enableOption) { + $options = [di(OptionsController::class), 'index']; + Router::addRoute([RequestMethod::REQUEST_OPTIONS], $path, $options); + } } }