qqq
This commit is contained in:
@@ -4,9 +4,6 @@ declare(strict_types=1);
|
||||
namespace Kiri\Router;
|
||||
|
||||
use Closure;
|
||||
use Kiri\Di\Context;
|
||||
use Kiri\Router\Base\Controller;
|
||||
use Psr\Http\Message\RequestInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
|
||||
+5
-1
@@ -6,6 +6,7 @@ namespace Kiri\Router;
|
||||
use Closure;
|
||||
use Exception;
|
||||
use Kiri;
|
||||
use Kiri\Router\Base\Middleware as MiddlewareManager;
|
||||
use Kiri\Router\Constrict\RequestMethod;
|
||||
use ReflectionException;
|
||||
|
||||
@@ -178,7 +179,10 @@ class Router
|
||||
$scanner->parse('App');
|
||||
|
||||
$this->read_dir_file(APP_PATH . 'routes');
|
||||
}
|
||||
|
||||
$router = Kiri::getDi()->get(DataGrip::class)->get(ROUTER_TYPE_HTTP);
|
||||
$router->reset();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+28
-3
@@ -8,6 +8,7 @@ namespace Kiri\Router;
|
||||
use Closure;
|
||||
use Exception;
|
||||
use Kiri;
|
||||
use Kiri\Router\Base\Middleware as MiddlewareManager;
|
||||
use Kiri\Router\Base\NotFoundController;
|
||||
use Kiri\Router\Constrict\RequestMethod;
|
||||
use ReflectionException;
|
||||
@@ -34,7 +35,7 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
||||
|
||||
|
||||
/**
|
||||
* @var HashMap
|
||||
* @var array<string, array<string, HashMap>>
|
||||
*/
|
||||
private HashMap $methods;
|
||||
|
||||
@@ -49,6 +50,30 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function reset(): void
|
||||
{
|
||||
$middlewareManager = \Kiri::getDi()->get(MiddlewareManager::class);
|
||||
|
||||
/**
|
||||
* @var string $method
|
||||
* @var HashMap $handlers
|
||||
*/
|
||||
foreach ($this->methods as $handlers) {
|
||||
|
||||
/** @var Handler $handler */
|
||||
foreach ($handlers as $path => $handler) {
|
||||
$middleware = $middlewareManager->get($handler->getClass(), $handler->getMethod());
|
||||
|
||||
$handlers->put($path, new HttpRequestHandler($middleware, $handler));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
@@ -200,11 +225,11 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
|
||||
* @return Handler|null
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function query(string $path, string $method): ?Handler
|
||||
public function query(string $path, string $method): ?HttpRequestHandler
|
||||
{
|
||||
$parent = $this->methods->get($method);
|
||||
if ($parent === null) {
|
||||
return new Handler([di(NotFoundController::class), 'fail'], []);
|
||||
return new HttpRequestHandler([], new Handler([di(NotFoundController::class), 'fail'], []));
|
||||
}
|
||||
if ($method === 'OPTIONS') {
|
||||
$path = '/*';
|
||||
|
||||
Reference in New Issue
Block a user