mapper.php

Basically a serialization wrapper for netresearch/jsonmapper
git clone git://git.finwo.net/lib/mapper.php
Log | Files | Refs | README

commit 48845fda9bb9096166f1f3a3aaba9884e819e1a1
parent c642eb717e90f08bf135b5c16755dc383d2b72f9
Author: finwo <finwo@pm.me>
Date:   Wed, 21 Dec 2016 09:54:09 +0100

Support for arrays

Diffstat:
Msrc/Mapper.php | 16++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/Mapper.php b/src/Mapper.php @@ -25,11 +25,11 @@ class Mapper /** * @param object|string $objectOrString - * @param object $targetObject + * @param object|array $targetObject * * @return $this */ - public function map($objectOrString, $targetObject) + public function map($objectOrString, &$targetObject = array()) { // Initialize json-mapper static $mapper = null; @@ -38,10 +38,18 @@ class Mapper } // Make the data usable + /** @var object|array $data */ $data = $this->getDriverHandler()->deserialize($objectOrString); - // Map & bail - $mapper->map($data, $targetObject); + // Map into target + if (is_array($data)) { + $class = is_object($targetObject) ? get_class($targetObject) : is_array($targetObject) ? null : "$targetObject"; + $targetObject = $mapper->mapArray($data, array(), $class); + } else { + $mapper->map($data, $targetObject); + } + + // Bail before things get complicated return $this; } }