This commit is contained in:
2021-04-26 12:32:38 +08:00
parent 9ae3dc8f8a
commit 0db6782135
3 changed files with 528 additions and 526 deletions
+10 -8
View File
@@ -9,6 +9,7 @@ use HttpServer\Abstracts\Callback;
use HttpServer\Exception\ExitException; use HttpServer\Exception\ExitException;
use HttpServer\Http\Request as HRequest; use HttpServer\Http\Request as HRequest;
use HttpServer\Http\Response as HResponse; use HttpServer\Http\Response as HResponse;
use HttpServer\Route\Router;
use Snowflake\Error\Logger; use Snowflake\Error\Logger;
use Snowflake\Event; use Snowflake\Event;
use Snowflake\Snowflake; use Snowflake\Snowflake;
@@ -28,12 +29,16 @@ class OnRequest extends Callback
public Logger $logger; public Logger $logger;
public Router $router;
/** /**
* @throws Exception * @throws Exception
*/ */
public function init() public function init()
{ {
$this->event = Snowflake::app()->getEvent(); $this->event = Snowflake::app()->getEvent();
$this->router = Snowflake::app()->getRouter();
} }
@@ -50,15 +55,12 @@ class OnRequest extends Callback
fire(Event::SYSTEM_RESOURCE_RELEASES); fire(Event::SYSTEM_RESOURCE_RELEASES);
}); });
/** @var HRequest $request */ /** @var HRequest $request */
/** @var HResponse $response */
[$request, $response] = OnRequest::createContext($request, $response); [$request, $response] = OnRequest::createContext($request, $response);
if ($request->is('favicon.ico')) {
$this->event->dispatch(Event::EVENT_BEFORE_REQUEST, [$request]); return $response->send('', 404);
}
$result = $request->dispatch(); return $this->router->dispatch();
$this->event->dispatch(Event::EVENT_AFTER_REQUEST, [$request, $result]);
return $result;
} catch (ExitException | Error | \Throwable $exception) { } catch (ExitException | Error | \Throwable $exception) {
$this->addError($exception, 'throwable'); $this->addError($exception, 'throwable');
return $this->sendErrorMessage($request, $response, $exception); return $this->sendErrorMessage($request, $response, $exception);
+1
View File
@@ -519,6 +519,7 @@ class Node extends HttpService
if (empty($this->callback)) { if (empty($this->callback)) {
return Json::to(404, $this->errorMsg()); return Json::to(404, $this->errorMsg());
} }
return call_user_func($this->handler, \request());
return $this->httpFilter(); return $this->httpFilter();
} }
+1 -2
View File
@@ -540,8 +540,7 @@ class Router extends HttpService implements RouterInterface
if (!($node = $this->find_path(\request()))) { if (!($node = $this->find_path(\request()))) {
return send(self::NOT_FOUND); return send(self::NOT_FOUND);
} }
$response = $node->dispatch(); send(($response = $node->dispatch()), 200);
send($response, 200);
if (!$node->hasAfter()) { if (!$node->hasAfter()) {
return null; return null;
} }