// don't die on autoload

This commit is contained in:
Rémi Gaillard committed 2013-11-04 18:08:24 +01:00
1 parent 0a65de5e5f
commit f5cc6862cb
1 file changed
+6 -12
+6 -12
View File
@@ -137,24 +137,18 @@ class Autoload
// Write classes index on disc to cache it // Write classes index on disc to cache it
$filename = $this->root_dir.Autoload::INDEX_FILE; $filename = $this->root_dir.Autoload::INDEX_FILE;
if ((file_exists($filename) && !is_writable($filename)) || !is_writable(dirname($filename)))
{
header('HTTP/1.1 503 temporarily overloaded');
// Cannot use PrestaShopException in this context
die('/cache/class_index.php is not writable, please give write permissions (chmod 666) on this file.');
}
else
{
$filename_tmp = tempnam(dirname($filename), basename($filename.'.')); $filename_tmp = tempnam(dirname($filename), basename($filename.'.'));
if($filename_tmp !== FALSE and file_put_contents($filename_tmp, $content, LOCK_EX) !== FALSE) if ($filename_tmp !== false && file_put_contents($filename_tmp, $content, LOCK_EX) !== false)
{ {
@rename($filename_tmp, $filename); if (!rename($filename_tmp, $filename))
unlink($filename_tmp);
else
@chmod($filename, 0666); @chmod($filename, 0666);
} }
else
// $filename_tmp couldn't be written. $filename should be there anyway (even if outdated), no need to die. // $filename_tmp couldn't be written. $filename should be there anyway (even if outdated), no need to die.
else
error_log('Cannot write temporary file '.$filename_tmp); error_log('Cannot write temporary file '.$filename_tmp);
}
$this->index = $classes; $this->index = $classes;
} }