예제 #1
0
 /**
  * {@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);
 }
예제 #2
0
 /**
  * {@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);
 }
예제 #3
0
 /**
  * {@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));
 }