Example #1
0
File: sacy.php Project: fjg/sacy
 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;
 }