改名
This commit is contained in:
@@ -157,13 +157,11 @@ class Node
|
||||
*/
|
||||
private function injectMiddleware(string $method, $handler, $_injectParameters): void
|
||||
{
|
||||
$callback = (new Pipeline())->overall($this->router->getMiddleware())
|
||||
$this->callback[$method] = (new Pipeline())->overall($this->router->getMiddleware())
|
||||
->through($this->middleware[$method] ?? [])
|
||||
->through(MiddlewareManager::get($handler))
|
||||
->send($_injectParameters)
|
||||
->then($handler);
|
||||
|
||||
HandlerProviders::add($method, $this->sourcePath, $callback);
|
||||
}
|
||||
|
||||
|
||||
@@ -314,11 +312,10 @@ class Node
|
||||
if (!in_array($request->getMethod(), $this->method)) {
|
||||
throw new RequestException(Constant::STATUS_405_MESSAGE, 405);
|
||||
}
|
||||
$handlerProviders = HandlerProviders::get($this->sourcePath, $request->getMethod());
|
||||
if (empty($handlerProviders)) {
|
||||
if (empty($this->callback[$request->getMethod()])) {
|
||||
throw new RequestException(Constant::STATUS_404_MESSAGE, 404);
|
||||
}
|
||||
return $handlerProviders->interpreter($request);
|
||||
return $this->callback[$request->getMethod()]->interpreter($request);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ use Kiri\Abstracts\Config;
|
||||
use Kiri\Exception\ConfigException;
|
||||
use Kiri\Exception\NotFindClassException;
|
||||
use Kiri\Kiri;
|
||||
use Psr\Http\Message\UriInterface;
|
||||
use ReflectionException;
|
||||
use Server\Constrict\RequestInterface;
|
||||
use Throwable;
|
||||
@@ -29,7 +28,7 @@ defined('ROUTER_HASH') or define('ROUTER_HASH', 2);
|
||||
*/
|
||||
class Router extends HttpService implements RouterInterface
|
||||
{
|
||||
/** @var \Http\Route\Node[] $nodes */
|
||||
/** @var Node[] $nodes */
|
||||
public array $nodes = [];
|
||||
public array $groupTacks = [];
|
||||
public ?string $namespace = 'App\\Http\\Controllers';
|
||||
@@ -151,7 +150,7 @@ class Router extends HttpService implements RouterInterface
|
||||
* @param $root
|
||||
* @param $method
|
||||
* @param bool $create
|
||||
* @return array<\Http\Route\Node, array>
|
||||
* @return array<Node, array>
|
||||
*/
|
||||
private function getRootNode($root, $method, bool $create = true): array
|
||||
{
|
||||
@@ -509,10 +508,25 @@ class Router extends HttpService implements RouterInterface
|
||||
*/
|
||||
public function radix_tree(RequestInterface $request): ?Node
|
||||
{
|
||||
[$parent, $explode] = $this->getRootNode($request->getUri()->getPath(),
|
||||
$request->getMethod(), false);
|
||||
$path = $request->getUri()->getPath();
|
||||
|
||||
[$parent, $explode] = $this->getRootNode($path, $request->getMethod(), false);
|
||||
if ($parent && !empty($explode)) {
|
||||
/** @var \Http\Route\Node $parent */
|
||||
$parent = $this->searchNode($explode, $parent);
|
||||
}
|
||||
return $parent;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $explode
|
||||
* @param $parent
|
||||
* @return null|Node
|
||||
* @throws Exception
|
||||
*/
|
||||
private function searchNode($explode, $parent): ?Node
|
||||
{
|
||||
/** @var Node $parent */
|
||||
foreach ($explode as $value) {
|
||||
$node = $parent->findNode($value);
|
||||
if (!$node) {
|
||||
@@ -520,7 +534,6 @@ class Router extends HttpService implements RouterInterface
|
||||
}
|
||||
$parent = $node;
|
||||
}
|
||||
}
|
||||
return $parent;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user