code: public static function encode($data, $options = 448)
      {
          if (PHP_VERSION_ID >= 50400) {
              $json = json_encode($data, $options);
              if (false === $json) {
                  self::throwEncodeError(json_last_error());
              }
  
              //  compact brackets to follow recent php versions
              if (PHP_VERSION_ID < 50428 || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50512) || (defined('JSON_C_VERSION') && version_compare(phpversion('json'), '1.3.6', '<'))) {
                  $json = preg_replace('/\[\s+\]/', '[]', $json);
                  $json = preg_replace('/\{\s+\}/', '{}', $json);
              }
  
              return $json;
          }
  
          $json = json_encode($data);
          if (false === $json) {
              self::throwEncodeError(json_last_error());
          }
  
          $prettyPrint = (bool) ($options & self::JSON_PRETTY_PRINT);
          $unescapeUnicode = (bool) ($options & self::JSON_UNESCAPED_UNICODE);
          $unescapeSlashes = (bool) ($options & self::JSON_UNESCAPED_SLASHES);
  
          if (!$prettyPrint && !$unescapeUnicode && !$unescapeSlashes) {
              return $json;
          }
  
          return JsonFormatter::format($json, $unescapeUnicode, $unescapeSlashes);
      }
docs: Encodes an array into (optionally pretty-printed) JSON
  
  @param  mixed  $data    Data to encode into a formatted JSON string
  @param  int    $options json_encode options (defaults to JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
  @return string Encoded json