From 274c70190778f775a0359dec5a57aafdd8186bb3 Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Thu, 22 Feb 2018 09:00:41 +0200 Subject: [PATCH] Improved Object serialize()/unserialize() --- system/src/Grav/Framework/Object/Base/ObjectTrait.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/system/src/Grav/Framework/Object/Base/ObjectTrait.php b/system/src/Grav/Framework/Object/Base/ObjectTrait.php index 746428614..6522e8eb1 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectTrait.php @@ -118,6 +118,9 @@ trait ObjectTrait { $data = unserialize($serialized); + if (method_exists($this, 'initObjectProperties')) { + $this->initObjectProperties(); + } $this->doUnserialize($data); } @@ -126,6 +129,10 @@ trait ObjectTrait */ protected function doUnserialize(array $serialized) { + if (!isset($serialized['key'], $serialized['type'], $serialized['elements']) || $serialized['type'] !== $this->getType()) { + throw new \InvalidArgumentException("Cannot unserialize '{$this->getType()}': Bad data"); + } + $this->setKey($serialized['key']); $this->setElements($serialized['elements']); }