Api\V1\Engine\Api::outputXML PHP Method

outputXML() private static method

Output as XML
private static outputXML ( integer $statusCode, array $data = null )
$statusCode integer The status code.
$data array The data to return.
    private static function outputXML($statusCode, array $data = null)
    {
        // redefine
        $statusCode = (int) $statusCode;
        // init vars
        $charset = BackendModel::getContainer()->getParameter('kernel.charset');
        $pathChunks = explode(DIRECTORY_SEPARATOR, trim(__DIR__, DIRECTORY_SEPARATOR));
        $version = $pathChunks[count($pathChunks) - 2];
        $version = mb_strtolower($version);
        // init XML
        $XML = new \DOMDocument('1.0', $charset);
        // set some properties
        $XML->preserveWhiteSpace = false;
        $XML->formatOutput = true;
        // create root element
        $root = $XML->createElement('fork');
        // add attributes
        $root->setAttribute('status_code', $statusCode);
        $root->setAttribute('status', $statusCode == 200 ? 'ok' : 'error');
        $root->setAttribute('version', FORK_VERSION);
        $root->setAttribute('endpoint', SITE_URL . '/api/' . $version);
        // append
        $XML->appendChild($root);
        // build XML
        array_walk($data, array(__CLASS__, 'arrayToXML'), $root);
        // set correct headers
        header('HTTP/1.1 ' . self::getHeaderMessage($statusCode));
        header('content-type: text/xml;charset=' . $charset);
        // output XML
        self::$content = $XML->saveXML();
    }