[Config] ensure moving away from Serializable wont break cache:clear

This commit is contained in:
Nicolas Grekas 2019-01-30 09:41:20 +01:00
parent 3cfb558f03
commit 9d3180a7e2

View File

@ -156,10 +156,11 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
{ {
$e = null; $e = null;
$meta = false; $meta = false;
$content = file_get_contents($file);
$signalingException = new \UnexpectedValueException(); $signalingException = new \UnexpectedValueException();
$prevUnserializeHandler = ini_set('unserialize_callback_func', ''); $prevUnserializeHandler = ini_set('unserialize_callback_func', '');
$prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) { $prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) use (&$prevErrorHandler, $signalingException) {
if (E_WARNING === $type && 'Class __PHP_Incomplete_Class has no unserializer' === $msg) { if (__FILE__ === $file) {
throw $signalingException; throw $signalingException;
} }
@ -167,7 +168,7 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
}); });
try { try {
$meta = unserialize(file_get_contents($file)); $meta = unserialize($content);
} catch (\Error $e) { } catch (\Error $e) {
} catch (\Exception $e) { } catch (\Exception $e) {
} }