public static function includeFile($dir, $filename) { $tdir = $dir . '/.transmogrified'; $tfile = $tdir . '/' . $filename; if (!file_exists($tdir)) { mkdir($tdir); } $T = new Transmogrifier(file_get_contents($dir . '/' . $filename)); file_put_contents($tfile, $T->asPhp()); require_once $tfile; }
/** * Converts a JSON string to a CFSimpleXML object. * * @param string|array $json (Required) Pass either a valid JSON-formatted string, or an associative array. * @param string $parser (Optional) The name of the class to use to parse the XML. This class should extend <code>SimpleXMLElement</code>. Has a default value of <code>CFSimpleXML</code>. * @return CFSimpleXML An XML representation of the data. */ public static function to_xml($json, $parser = 'CFSimpleXML') { // If we haven't parsed the JSON, do it if (!is_array($json)) { // Handle the case of JSON-encoded NULL value if ($json === 'null') { $json = null; } else { $json = json_decode($json, true); if (function_exists('json_last_error')) { // Did we encounter an error? switch (json_last_error()) { case JSON_ERROR_DEPTH: throw new JSON_Exception('Maximum stack depth exceeded.'); case JSON_ERROR_CTRL_CHAR: throw new JSON_Exception('Unexpected control character found.'); case JSON_ERROR_SYNTAX: throw new JSON_Exception('Syntax error; Malformed JSON.'); case JSON_ERROR_STATE_MISMATCH: throw new JSON_Exception('Invalid or malformed JSON.'); } } elseif ($json === null) { throw new JSON_Exception('Unknown JSON error. Be sure to validate your JSON and read the notes on http://php.net/json_decode.'); } } } // Hand off for the recursive work $string = Transmogrifier::to_xml($json, 'rootElement'); return simplexml_load_string($string, $parser, LIBXML_NOCDATA); }
function __autoload($className) { Transmogrifier::includeFile(APPROOT . '/classes', $className . '.php'); }