如何在 Yii2 中启用 gzip 压缩
How to enable gzip compression in Yii2
如何在 Yii2 中启用 gzip 压缩?
我曾尝试在 web/index.php 中使用下面的代码,但它 returns 是空的
$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();
不确定这是否是最佳做法,但我通过在 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();
更好的主意,你可以在任何地方使用它(比如在控制器或动作中):
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_BEFORE_SEND,
function ($event) {
ob_start("ob_gzhandler");
}
);
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_AFTER_SEND,
function ($event) {
ob_end_flush();
}
);
如何在 Yii2 中启用 gzip 压缩?
我曾尝试在 web/index.php 中使用下面的代码,但它 returns 是空的
$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();
不确定这是否是最佳做法,但我通过在 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();
更好的主意,你可以在任何地方使用它(比如在控制器或动作中):
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_BEFORE_SEND,
function ($event) {
ob_start("ob_gzhandler");
}
);
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_AFTER_SEND,
function ($event) {
ob_end_flush();
}
);