Kodlardaki ***** gibi ifadeleri siz mi değiştirdiniz acaba? Ayrıca yukarıdaki kodda en üst satırda

$filename = "%%-index-%%.html";
Bu şekilde ise, normaldir hata vermesi. %%-index-%% isimli bir dosya arıyor ve bulamıyor. Bulamadığı için de hata veriyor.

$filename = "%%-index-%%.html"; 
$cachefile = "cache/".$filename;
bu iki satırı şununla değişirseniz sorun düzelir muhtemelen.

$filename = 'index-' . date("d-m-Y-H",time());
$cachefile = "cache/".$filename;
file_exists($cachefile) == false ? touch($cachefile) : true;
Bu halinden sonra çalışması gerekir. Ancak paylaştığınız kodlar bana çok enteresan geldi.