/**
  * Gets the site config
  *
  * @param STDClass $C the config variable
  *
  * @returns the config object
  * @since ADD MVC 0.0
  */
 static function config(STDClass $C = null)
 {
     if ($C) {
         $config_array = (array) $C;
         $full_default_config_array = (array) self::default_config();
         $default_config_array = array_diff_key($full_default_config_array, $config_array);
         $merge_config_array = array_intersect_key($config_array, $full_default_config_array);
         $config_array = array_merge($default_config_array, $config_array);
         foreach ($merge_config_array as $key => $value) {
             if (is_object($value)) {
                 $value = (array) $value;
             }
             if (is_array($value)) {
                 $config_array[$key] = array_merge((array) $value, (array) $full_default_config_array[$key]);
             } else {
                 $config_array[$key] = $value;
             }
         }
         self::$C = $GLOBALS[self::CONFIG_VARNAME] = (object) $config_array;
         self::$environment_status = self::$C->environment_status;
         # Convert to object
         foreach (self::$C as &$var) {
             if (is_array($var)) {
                 $var = (object) $var;
             }
         }
     }
     return self::$C;
 }
 /**
  * Gets the site config
  *
  * @param STDClass $C the config variable
  *
  * @returns the config object
  * @since ADD MVC 0.0
  */
 static function config(STDClass $C = null)
 {
     if ($C) {
         self::$C = $C;
         $GLOBALS[self::CONFIG_VARNAME] = self::$C;
     }
     return self::$C;
 }