/** * @param Request $request * @return string */ public function encodeRequest(Request $request) { $closure = $request->getClosure(); $serialized = $this->serializer->serialize($closure); $request = new Request($serialized); return $this->encodeMessage($request); }
/** * Parse the json decode to convert to objects again * * @param mixed $value * @return mixed */ protected function unserializeData($value) { if (is_scalar($value) || $value === null) { return $value; } if (isset($value[static::CLASS_IDENTIFIER_KEY])) { return $this->unserializeObject($value); } if (!empty($value[static::CLOSURE_IDENTIFIER_KEY])) { if (!$this->closureSerializer) { throw new JsonSerializerException('Closure serializer not provided to unserialize closure'); } return $this->closureSerializer->unserialize($value['value']); } return array_map(array($this, __FUNCTION__), $value); }
/** * Returns closure data for `var_dump()`. * * @return array */ public function __debugInfo() { return $this->data ?: $this->serializer->getData($this->closure, true); }
/** * @return mixed */ public function getData() { return $this->serializer->serialize($this->closure); }