devi usare le funzioni ob_*

Per il caching puoi salvare il contenuto del buffer di output su disco.
Per la compressione puoi passargli il gzhandler come funzione di callback.

C'è un esempio molto semplice nel manuale e un articolo di Fabio Heller su Freephp.