如何在Yii2中启用gzip压缩

Har*_*ris 5 php gzip yii2

如何在Yii2中启用gzip压缩?

我试图在web/index.php中使用下面的代码,但它返回空

$application = new yii\web\Application($config);
$application->on(yii\web\Application::EVENT_BEFORE_REQUEST, function($event){
    ob_start("ob_gzhandler");
});
$application->on(yii\web\Application::EVENT_AFTER_REQUEST, function($event){
    ob_end_flush();
});
$application->run();
Run Code Online (Sandbox Code Playgroud)

Har*_*ris 6

不确定这是否是最佳实践,但我通过在 yii\web\Response 上附加事件处理程序使其工作

$application = new yii\web\Application($config);
$application->on(yii\web\Application::EVENT_BEFORE_REQUEST, function(yii\base\Event $event){
    $event->sender->response->on(yii\web\Response::EVENT_BEFORE_SEND, function($e){
        ob_start("ob_gzhandler");
    });
    $event->sender->response->on(yii\web\Response::EVENT_AFTER_SEND, function($e){
        ob_end_flush();
    });
});
$application->run();
Run Code Online (Sandbox Code Playgroud)