diff --git a/src/Symfony/Component/Cache/Traits/MemcachedTrait.php b/src/Symfony/Component/Cache/Traits/MemcachedTrait.php index 8139d31fa9b7..c2832946f98c 100644 --- a/src/Symfony/Component/Cache/Traits/MemcachedTrait.php +++ b/src/Symfony/Component/Cache/Traits/MemcachedTrait.php @@ -26,6 +26,7 @@ trait MemcachedTrait 'persistent_id' => null, 'username' => null, 'password' => null, + 'serializer' => 'php', ); private $client; @@ -194,7 +195,14 @@ protected function doSave(array $values, $lifetime) */ protected function doFetch(array $ids) { - return $this->checkResultCode($this->client->getMulti($ids)); + $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); + try { + return $this->checkResultCode($this->client->getMulti($ids)); + } catch (\Error $e) { + throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); + } finally { + ini_set('unserialize_callback_func', $unserializeCallbackHandler); + } } /**