예제 #1
0
 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;
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
function __autoload($className)
{
    Transmogrifier::includeFile(APPROOT . '/classes', $className . '.php');
}