/** * {@inheritdoc} */ public function serialize(Message $message, array $options = []) { if (isset($options['json_encode_options'])) { return json_encode(parent::serialize($message, $options), $options['json_encode_options']); } return json_encode(parent::serialize($message, $options)); }
/** * {@inheritdoc} * * Note that the greater the yaml_inline option the slower it is. * 3 provides really good human readability but if you need * speed use 0 or 1. */ public function serialize(Message $message, array $options = []) { if (!isset($options['yaml_inline'])) { $options['yaml_inline'] = 3; } if (!isset($options['yaml_indent'])) { $options['yaml_indent'] = 2; } return Yaml::dump(parent::serialize($message, $options), (int) $options['yaml_inline'], (int) $options['yaml_indent']); }
/** * {@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)); }