Skip to content

Commit 633303e

Browse files
committed
add detach method
1 parent 0d53a13 commit 633303e

4 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/Controller.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ public function setSwooleHttpObject(\Swoole\Http\Request $request, \Swoole\Http\
4848
$this->swoole_http_response = $response;
4949
return $this;
5050
}
51+
public function detachSwooleObject(): self {
52+
$this->swoole_http_request = null;
53+
$this->swoole_http_response = null;
54+
return $this;
55+
}
5156
public function getSwooleHttpRequest(): \Swoole\Http\Request {
5257
return $this->swoole_http_request;
5358
}

src/Handler.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,13 @@ private static function parseRequest(\Swoole\Http\Request $request, \Swoole\Http
278278
$request->post = new \stdClass();
279279
return false;
280280
}
281-
public static function end(\Swoole\Http\Request $request) {
281+
public static function end() {
282282
\session::end();
283+
try {
284+
Router::getInstance()->detachSwooleRequest();
285+
} catch(\Throwable $e) {}
286+
$controller = Controller::getInstance(false);
287+
if (isset($controller))
288+
$controller->detachSwooleObject();
283289
}
284290
}

src/HttpServer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ public function onRequest(\Swoole\Http\Request $request, \Swoole\Http\Response $
298298
if (self::$terminal_server->getRequestLogSwitchStatus(2))
299299
self::$terminal_server->send($request_string . ' ==> ' . $response_string, 2);
300300

301-
HttpServer\Handler::end($request);
301+
HttpServer\Handler::end();
302302
}
303303
public function onPipeMessage(\Swoole\Server $server, int $src_worker_id, $message) {
304304
$cmd = unpack('n', substr($message, 0, 2))[1];

src/Router.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ public function getURI(): string {
4444
public function getFd(): int {
4545
return $this->request->fd;
4646
}
47+
public function detachSwooleRequest(): self {
48+
$this->request = null;
49+
return $this;
50+
}
4751
public function getControllerName(): string {
4852
return $this->controller_name;
4953
}

0 commit comments

Comments
 (0)