/** * Cria o cache da pagina, caso ja exista eh retornado ao usuario * O cache eh criado com o seguinte formato prefixo+nome_arquivo+md5_arquivo_pagina+md5("$md5Template+$md5Header+$md5Menu+$md5Footer), * desta forma qualquer modificacao em arquivos que mudam o conteudo da pagina exige um novo arquivo de cache e o antigo eh apagado * @param string $template com o template que sera usado na renderizacao, valor padrao é template.php * @return string com a pagina renderizada que estava em cache ou que acabou de ir para o cache */ public function criarCache($template = 'template.php') { $this->arquivoCache = new Minify_Cache_File($_SERVER['DOCUMENT_ROOT'] . '/min/cache/'); $md5Arquivo = $this->gerarCacheMd5(); $md5Template = $this->gerarTemplateMd5(); $nomeCache = $this->gerarNomeCache(); $cachesAtual = glob($_SERVER['DOCUMENT_ROOT'] . "/min/cache/{$nomeCache}*"); $this->arquivoCacheId = $this->gerarCacheId($md5Arquivo, $md5Template); $htmlRenderizado = null; if (count($cachesAtual) == 1) { if (basename($cachesAtual[0]) == $this->arquivoCacheId) { //cache ja criado $htmlRenderizado = $this->arquivoCache->fetch($this->arquivoCacheId); } else { @unlink($cachesAtual[0]); //apaga o cache } } if ($htmlRenderizado == null) { $htmlRenderizado = parent::renderizar($template); $this->arquivoCache->store($this->arquivoCacheId, $htmlRenderizado); } return $htmlRenderizado; }