Example #1
0
 public function setUp()
 {
     $this->classMapper = new DefaultMapper(new DefaultNameExtractor());
     $this->classMapper->register(Serializable::class);
     $this->classMapper->register(\DateTime::class);
     $this->classMapper->register(\DateTimeImmutable::class);
     $this->classMapper->register(\DateTimeZone::class);
     $this->hydratorFactory = new HydratorFactory(__DIR__ . DIRECTORY_SEPARATOR . 'cache', true);
     $this->dataFormatter = new FlatFormatter();
     $this->instantiator = new Instantiator();
 }
Example #2
0
 /**
  * @param array $serializedObject
  *
  * @return object
  */
 private function deserializeObject(array $serializedObject)
 {
     list($name, $payload) = $this->dataFormatter->getNameAndPayload($serializedObject);
     $curatedPayload = [];
     foreach ($payload as $key => $value) {
         $curatedPayload[$key] = $this->recursiveDeserialize($value);
     }
     $objectFqcn = $this->classMapper->getClassName($name);
     foreach ($this->customSerializers as $customSerializer) {
         if ($customSerializer->canHandle($objectFqcn)) {
             return $customSerializer->deserialize($curatedPayload, $objectFqcn);
         }
     }
     $object = $this->instantiator->instantiate($objectFqcn);
     return $this->hydratorFactory->getHydrator($objectFqcn)->hydrate($curatedPayload, $object);
 }