[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
1 changed files with 3 additions and 2 deletions

View File

@ -156,10 +156,11 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
{
$e = null;
$meta = false;
$content = file_get_contents($file);
$signalingException = new \UnexpectedValueException();
$prevUnserializeHandler = ini_set('unserialize_callback_func', '');
$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;
}
@ -167,7 +168,7 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
});
try {
$meta = unserialize(file_get_contents($file));
$meta = unserialize($content);
} catch (\Error $e) {
} catch (\Exception $e) {
}