irgendwie check ich aber absolut nicht, wann das gecachte template geladen wird und wann es neu generiert wird.
bis jetzt bin ich soweit: haben das gecachte und das originale template-file die gleiche modifikation-zeit, wird das gecachte template genommen. ansonsten wird es neu generiert. dann wird die modifikations-zeit für das gecachte template auf die zeit des orig. template-files gesetzt.
aber wann/wie werden die zeiten von beiden dateien unterschiedlich, damit das neu-generieren angestoßen werden kann??? da komm ich nicht weiter und auch die sufu hat mich leider nicht schlauer gemacht ...
Code: Alles auswählen
function pparse($handle)
{
global $phpEx;
$cache_file = $this->cachedir . $this->filename[$handle] . '.' . $phpEx;
if(@filemtime($cache_file) == @filemtime($this->files[$handle]))
{
$_str = '';
include($cache_file);
if ($_str != '')
{
echo $_str;
}
}
else
{
if (!$this->loadfile($handle))
{
die("Template->pparse(): Couldn't load template file for handle $handle");
}
// Actually compile the code now.
$this->compiled_code[$handle] = $this->compile($this->uncompiled_code[$handle]);
$fp = fopen($cache_file, 'w+');
fwrite ($fp, '<?php' . "\n" . $this->compiled_code[$handle] . "\n?" . '>');
fclose($fp);
touch($cache_file, filemtime($this->files[$handle]));
@chmod($cache_file, 0777);
eval($this->compiled_code[$handle]);
}
return true;
}