为什么symfony控制器会在用户关闭浏览器后继续执行?

时间:2017-10-10 19:21:51

标签: symfony

以下是我的控制器。在我访问/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;
    } 

1 个答案:

答案 0 :(得分:1)

PHP代码是服务器端。无论您是否关闭浏览器,Web服务器日志记录都将在服务器上继续。这是正常行为。请参阅此stackoverflow问题以获得更好的解释:Can closing the browser terminate the PHP script on the server?