From 71b11366bbc83cfdb16bfe4478828a7c521ea50a Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Mon, 25 Sep 2017 14:17:14 +0300 Subject: [PATCH] Add support to serialize Object properties --- .../Object/Property/ObjectPropertyTrait.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php index 8154c391c..727eb7361 100644 --- a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php @@ -133,7 +133,19 @@ trait ObjectPropertyTrait */ protected function getElements() { - return array_intersect_key(get_object_vars($this), array_filter($this->_definedProperties)); + $properties = array_intersect_key(get_object_vars($this), array_filter($this->_definedProperties)); + + $elements = []; + foreach ($properties as $offset => $value) { + $methodName = "offsetSerialize_{$offset}"; + if (method_exists($this, $methodName)) { + $elements[$offset] = $this->{$methodName}($value); + } else { + $elements[$offset] = $value; + } + } + + return $elements; } /**