以下是我的控制器。在我访问/test
后,即使我关闭浏览器,为什么控制器仍在运行?这是正常的行为吗?我没有使用ignore_user_abort
等任何配置?
为什么即使在我关闭浏览器后,此控制器仍会保持输出日志?
/**
* @Route("/test")
*/
public function testAction() {
$logger = $this->get('exception.logger');
for ($i = 0; $i < 100; $i++) {
$logger->info("[{$i}] ------------------------------- ");
sleep(1);
}
$response = new StreamedResponse(function() use($logger) {
for ($i = 0; $i < 100; $i++) {
$logger->info("[{$i}] ******************************************* ");
sleep(1);
}
});
$filename = "test.csv";
$response->headers->set('Content-Type', 'application/force-download');
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"');
return $response;
}
答案 0 :(得分:1)
PHP代码是服务器端。无论您是否关闭浏览器,Web服务器日志记录都将在服务器上继续。这是正常行为。请参阅此stackoverflow问题以获得更好的解释:Can closing the browser terminate the PHP script on the server?