public function serializeResponse($object, $ignoreNull = false) { $start = microtime(true); KalturaLog::debug("Serialize start"); KalturaResponseCacher::endCacheIfDisabled(); $format = isset($this->params["format"]) ? $this->params["format"] : KalturaResponseType::RESPONSE_TYPE_XML; if (isset($this->params['content-type'])) { header('Content-Type: ' . $this->params['content-type']); } else { switch ($format) { case KalturaResponseType::RESPONSE_TYPE_XML: header("Content-Type: text/xml"); break; case KalturaResponseType::RESPONSE_TYPE_JSON: header("Content-Type: application/json"); break; case KalturaResponseType::RESPONSE_TYPE_JSONP: header("Content-Type: application/javascript"); break; } } switch ($format) { case KalturaResponseType::RESPONSE_TYPE_XML: $serializer = new KalturaXmlSerializer($ignoreNull); echo '<?xml version="1.0" encoding="utf-8"?>'; echo "<xml>"; echo "<result>"; $serializer->serialize($object); echo "</result>"; echo "<executionTime>" . ($this->end - $this->start) . "</executionTime>"; echo "</xml>"; break; case KalturaResponseType::RESPONSE_TYPE_PHP: $serializer = new KalturaPhpSerializer($ignoreNull); $serializer->serialize($object); echo $serializer->getSerializedData(); break; case KalturaResponseType::RESPONSE_TYPE_JSON: $serializer = new KalturaJsonSerializer($ignoreNull); $serializer->serialize($object); echo $serializer->getSerializedData(); break; case KalturaResponseType::RESPONSE_TYPE_JSONP: $callback = isset($_GET["callback"]) ? $_GET["callback"] : null; if (is_null($callback)) { die("Expecting \"callback\" parameter for jsonp format"); } $serializer = new KalturaJsonSerializer($ignoreNull); $serializer->serialize($object); $response = array(); echo $callback, "(", $serializer->getSerializedData(), ");"; break; } KalturaLog::debug("Serialize took - " . (microtime(true) - $start)); }