Yii: Включаем сжатие приложения (gzip compression) для экономии траффика клиента и ускорения загрузки приложения

Yii: Включаем сжатие приложения (gzip compression) для экономии траффика клиента и ускорения загрузки приложения Чтобы пользователь загружал меньше данных (экономился трафик), а также чтобы страницы грузились быстрее, включаем Gzip сжатие Yii приложения

Это хорошо подумать о посетителях сайта, сделать так, чтобы их трафик меньше тратился, а сами страницы сайта открывались быстрее. Есть, конечно некоторые споры о том что лучше задействовать PHP или Apache для сжатия, в основном споры из-за нагрузки на сервер при выполнении php операций. 

В любом случае Yii очень легко помогает нам включить gzip сжатие c помощью PHP (тем более не все хостинги позволяют менять настройки apache). Использовать будем буферизацию и ob_gzhandler.

В Yii нам помогут 2 события: CApplication::onBeginRequest и CApplication::onEndRequest.

1 вариант

(включаем gzip в файле index.php перед запуском приложения):

require_once($yii);
$app = Yii::createWebApplication($config);
// attaching a handler to application start 
Yii::app()->onBeginRequest = function($event) 
{
		// starting output buffering with gzip handler 
		return ob_start("ob_gzhandler");
}; 
// attaching a handler to application end 
Yii::app()->onEndRequest = function($event) 
{
		// releasing output buffer 
		return ob_end_flush();
}; 
$app->run();

2 вариант

(вставить 2 строки в конфигурационный массив, дальше PHP всё обработает сам):

'onBeginRequest'=>create_function('$event', 'return ob_start("ob_gzhandler");'),
'onEndRequest'=>create_function('$event', 'return ob_end_flush();'),



Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.