/** * Encodes data * @param any $data Data to output * @param string $output Custom output to render. Defaults defined. * @param bool $cached Returns cached status. * @return string Encoded string */ public static function encode($data, $output = DEFAULT_OUTPUT, $cached = FALSE) { self::set_headers($output); $return["status"] = http_response_code(); $return["elapsed_time"] = 0; if (ENVIRONMENT !== "prod") { $return["cached"] = $cached; } $return["data"] = $data; if (class_exists("Stopwatch")) { Stopwatch::stop(); $return["elapsed_time"] = Stopwatch::get_elapse(); } switch ($output) { case "json": return json_encode($return); case "xml": $output = '<?xml version="1.0" encoding="UTF-8"?><response>'; $output .= self::XML_encode($return); $output .= '</response>'; return $output; default: throw new APIexception("Output not supported", 7, 400); } }