This commit is contained in:
2023-04-19 12:35:39 +08:00
parent a16bb3a19c
commit aa8fb228cc
12 changed files with 151 additions and 55 deletions
-18
View File
@@ -1,18 +0,0 @@
<?php
declare(strict_types=1);
namespace Kiri\Router\Annotate;
#[\Attribute(\Attribute::TARGET_METHOD)]
class Aspect
{
/**
* @param string $aspect
*/
public function __construct(readonly public string $aspect)
{
}
}
+4 -3
View File
@@ -18,12 +18,11 @@ class Delete extends AbstractRequestMethod implements InjectRouteInterface
/**
* @param string $path
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
/**
* @param object $class
* @param string $method
@@ -34,7 +33,9 @@ class Delete extends AbstractRequestMethod implements InjectRouteInterface
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_DELETE, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_DELETE, $path, [$class, $method]);
}
+5 -5
View File
@@ -14,28 +14,28 @@ class Get extends AbstractRequestMethod implements InjectRouteInterface
{
/**
* @param string $path
* @param string $version
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
/**
* @param object $class
* @param string $method
* @return void
* @throws ReflectionException
* @throws Exception
* @throws ReflectionException
*/
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_GET, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_GET, $path, [$class, $method]);
}
}
+4 -3
View File
@@ -19,12 +19,11 @@ class Head extends AbstractRequestMethod implements InjectRouteInterface
/**
* @param string $path
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
/**
* @param object $class
* @param string $method
@@ -35,7 +34,9 @@ class Head extends AbstractRequestMethod implements InjectRouteInterface
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_HEAD, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_HEAD, $path, [$class, $method]);
}
+4 -3
View File
@@ -19,12 +19,11 @@ class Options extends AbstractRequestMethod implements InjectRouteInterface
/**
* @param string $path
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
/**
* @param object $class
* @param string $method
@@ -35,7 +34,9 @@ class Options extends AbstractRequestMethod implements InjectRouteInterface
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_OPTIONS, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_OPTIONS, $path, [$class, $method]);
}
+5 -4
View File
@@ -14,12 +14,11 @@ class Post extends AbstractRequestMethod implements InjectRouteInterface
{
/**
* @param string $path
* @param string $version
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
@@ -34,7 +33,9 @@ class Post extends AbstractRequestMethod implements InjectRouteInterface
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_POST, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_POST, $path, [$class, $method]);
}
+4 -2
View File
@@ -19,7 +19,7 @@ class Put extends AbstractRequestMethod implements InjectRouteInterface
/**
* @param string $path
*/
public function __construct(readonly public string $path)
public function __construct(readonly public string $path, readonly public string $version = 'v1')
{
}
@@ -34,7 +34,9 @@ class Put extends AbstractRequestMethod implements InjectRouteInterface
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute(RequestMethod::REQUEST_PUT, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute(RequestMethod::REQUEST_PUT, $path, [$class, $method]);
}
}
+6 -3
View File
@@ -5,6 +5,7 @@ namespace Kiri\Router\Annotate;
use Kiri\Router\Constrict\RequestMethod;
use Kiri\Router\Interface\InjectRouteInterface;
use Kiri\Router\Router;
use ReflectionException;
#[\Attribute(\Attribute::TARGET_METHOD)]
class Route extends AbstractRequestMethod implements InjectRouteInterface
@@ -15,7 +16,7 @@ class Route extends AbstractRequestMethod implements InjectRouteInterface
* @param string $path
* @param RequestMethod $method
*/
public function __construct(readonly public string $path, readonly public RequestMethod $method)
public function __construct(readonly public string $path, readonly public RequestMethod $method, readonly public string $version = 'v1')
{
}
@@ -24,11 +25,13 @@ class Route extends AbstractRequestMethod implements InjectRouteInterface
* @param object $class
* @param string $method
* @return void
* @throws \ReflectionException
* @throws ReflectionException
*/
public function dispatch(object $class, string $method): void
{
// TODO: Implement dispatch() method.
Router::addRoute($this->method, $this->path, [$class, $method]);
$path = $this->version . '/' . ltrim($this->path, '/');
Router::addRoute([$this->method], $path, [$class, $method]);
}
}