Enabling Gzip

Adding HTTP compression to your application could never have been easier!

Just insert the following two lines to your configuration array, and PHP will do the rest.

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

An overview about this:

  • PHP's create_function will create lambda functions in runtime, so you don't have to worry about external files. It'll take the parameter list and the internal code, respectively, and return the newly added function name, which will serve here as callbacks.
  • Indexing these items as onBeginRequest and onEndRequest will trigger attaching callbacks to application events.
  • Event handlers are even acceptable since they'll take the event object as first argument.
  • Please visit official PHP site for more information regarding ob_start and ob_gzhandler. In summary, the latter will check whether the client is compatible with gzipped content, set the Content-Encoding header and compress all the content generated during processRequest accordingly.
  • If the current browser is not capable of uncompressing gzip, gzhandler will leave the output untouched.

(If you need additional functionality, you may want to create a separate file for these functions.)

6 1
13 followers
Viewed: 38 601 times
Version: 1.1
Category: Tutorials
Tags:
Written by: pestaa
Last updated by: Yang He
Created on: Jul 10, 2009
Last updated: 11 years ago
Update Article

Revisions

View all history