From f5cc6862cb8e2c2987ce98f28fb406de2dc5fabd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Mon, 4 Nov 2013 18:08:24 +0100 Subject: [PATCH] // don't die on autoload --- classes/Autoload.php | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/classes/Autoload.php b/classes/Autoload.php index b9b5a394e..903484add 100644 --- a/classes/Autoload.php +++ b/classes/Autoload.php @@ -137,24 +137,18 @@ class Autoload // Write classes index on disc to cache it $filename = $this->root_dir.Autoload::INDEX_FILE; - if ((file_exists($filename) && !is_writable($filename)) || !is_writable(dirname($filename))) + $filename_tmp = tempnam(dirname($filename), basename($filename.'.')); + if ($filename_tmp !== false && file_put_contents($filename_tmp, $content, LOCK_EX) !== false) { - 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.'.')); - if($filename_tmp !== FALSE and file_put_contents($filename_tmp, $content, LOCK_EX) !== FALSE) - { - @rename($filename_tmp, $filename); - @chmod($filename, 0666); - } + if (!rename($filename_tmp, $filename)) + unlink($filename_tmp); else - // $filename_tmp couldn't be written. $filename should be there anyway (even if outdated), no need to die. - error_log('Cannot write temporary file '.$filename_tmp); + @chmod($filename, 0666); } + // $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); + $this->index = $classes; }