Cache PHP com register_shutdown_function ()

register shutdown function () registra uma função para execução no desligamento.

Em combinação com ob start () e ob get_clean (), você pode acessar a saída antes de ser enviada ao usuário e armazená-la em cache ou modificá-la.

cache.php

<?php
ob_start
();
$dir
= getcwd() . "/cache/";
$cache
= $dir . md5($_SERVER['REQUEST_URI']) . ".html";
if( file_exists($cache) &&
(time()-filemtime($cache)) < 86400)
{
die( file_get_contents($cache) );
}
function cacheSave( $cache ){
if ( !error_get_last() )
file_put_contents
($cache, ob_get_flush());
}
register_shutdown_function
('cacheSave', $cache );

Basta adicionar o seguinte código no início do front controller para habilitar o cache:

require "cache.php";

Importante função de desligamento de
registro () acessa o sistema de arquivos da raiz (/), portanto, para acessar os arquivos em sua raiz da web, você deve usar o caminho absoluto!

RainCache
Aqui está uma biblioteca de cache que implementa plug-ins, armazena em cache o HTML e minimiza CSS, JS
https://github.com/rainphp/RainCache/