protected function Twig_Environment::writeCacheFile

1 call to Twig_Environment::writeCacheFile()
Twig_Environment::loadTemplate in drupal/core/vendor/twig/twig/lib/Twig/Environment.php
Loads a template by name.

File

drupal/core/vendor/twig/twig/lib/Twig/Environment.php, line 1082

Class

Twig_Environment
Stores the Twig configuration.

Code

protected function writeCacheFile($file, $content) {
  $dir = dirname($file);
  if (!is_dir($dir)) {
    if (false === @mkdir($dir, 0777, true) && !is_dir($dir)) {
      throw new RuntimeException(sprintf("Unable to create the cache directory (%s).", $dir));
    }
  }
  elseif (!is_writable($dir)) {
    throw new RuntimeException(sprintf("Unable to write in the cache directory (%s).", $dir));
  }
  $tmpFile = tempnam(dirname($file), basename($file));
  if (false !== @file_put_contents($tmpFile, $content)) {

    // rename does not work on Win32 before 5.2.6
    if (@rename($tmpFile, $file) || @copy($tmpFile, $file) && unlink($tmpFile)) {
      @chmod($file, 0666 & ~umask());
      return;
    }
  }
  throw new Twig_Error_Runtime(sprintf('Failed to write cache file "%s".', $file));
}