/** * {@inheritdoc} * * @return Message */ public function deserialize($data, array $options = []) { if (!is_array($data)) { $data = json_decode($data, true); if (JSON_ERROR_NONE !== json_last_error()) { throw new DeserializeMessageFailed($this->getLastErrorMessage()); } } return parent::deserialize($data, $options); }
/** * {@inheritdoc} * * @return Message */ public function deserialize($data, array $options = []) { if (!is_array($data)) { try { $data = Yaml::parse($data); } catch (\Exception $e) { throw new DeserializeMessageFailed($e->getMessage(), 0, $e); } } return parent::deserialize($data, $options); }
/** * {@inheritdoc} * todo: review performance */ public final function generateEtag(array $ignoredFields = []) { if (null === self::$serializer) { self::$serializer = new PhpArraySerializer(); } $array = self::$serializer->serialize($this, ['includeAllFields' => true]); if (empty($ignoredFields)) { return md5(json_encode($array)); } foreach ($ignoredFields as $field) { unset($array[$field]); } return md5(json_encode($array)); }