private function write_cache_tmpfile($cfile, $files, CacheRenderHandler $rh) { $tmpfile = tempnam(dirname($cfile), $cfile); $fhc = @fopen($tmpfile, 'w+'); if (!$fhc) { trigger_error("Cannot write to temporary file: {$tmpfile}", E_USER_WARNING); return null; } if ($rh->getConfig()->get('write_headers')) { $rh->writeHeader($fhc, $files); } $res = true; $merge = !!$rh->getConfig()->get('merge_tags'); if ($merge) { $rh->startWrite(); } foreach ($files as $file) { try { $rh->processFile($fhc, $file); } catch (\Exception $e) { trigger_error(sprintf("Exception %s while processing %s:\n\n%s", get_class($e), $file['file'], $e->getMessage()), E_USER_WARNING); $res = false; break; } } if ($merge) { $rh->endWrite($fhc); } fclose($fhc); return $res ? $tmpfile : null; }