2 /*------------------------------------------------------------
3 * CarbonPHP framework (C) Tom Bell
4 * http://tombell.org.uk
5 *------------------------------------------------------------*/
7 if (!defined('CARBON_PATH'))
9 exit('Direct script access is not allowed.');
12 function &load_class($class_name, $instantiate = true)
14 static $class_objects = array();
16 if (isset($class_objects[$class_name]))
18 return $class_objects[$class_name];
21 if (file_exists(APP_PATH
. 'libraries/' . get_config_value('subclass_prefix') . $class_name . FILE_EXT
))
23 require(CARBON_PATH
. 'libraries/' . $class_name . FILE_EXT
);
24 require(APP_PATH
. 'libraries/' . get_config_value('subclass_prexfix') . $class_name . FILE_EXT
);
30 if (file_exists(APP_PATH
. 'libraries/' . $class_name . FILE_EXT
))
32 require(APP_PATH
. 'libraries/' . $class_name . FILE_EXT
);
38 require(CARBON_PATH
. 'libraries/' . $class_name . FILE_EXT
);
45 $class_objects[$class_name] = true;
47 return $class_objects[$class_name];
52 $full_class_name = get_config_value('subclass_prefix') . $class_name;
53 $class_objects[$class_name] = new $full_class_name();
55 return $class_objects[$class_name];
58 $full_class_name = ($class_name != 'Controller') ?
'Carbon_' . $class_name : $class_name;
59 $class_objects[$class_name] = new $full_class_name();
61 return $class_objects[$class_name];
64 function &load_config()
66 static $carbon_config;
68 if (isset($carbon_config))
70 return $carbon_config[0];
73 if (!file_exists(APP_PATH
. 'config/config' . FILE_EXT
))
75 exit('The main CarbonPHP configuration file config' . FILE_EXT
. ' does not exist.');
78 require(APP_PATH
. 'config/config' . FILE_EXT
);
80 if (!isset($config) ||
!is_array($config))
82 exit('The main CarbonPHP configuration file config' . FILE_EXT
. ' is improperly formatted.');
85 $carbon_config[0] = $config;
87 return $carbon_config[0];
90 function get_config_value($config_item)
92 static $config_items = array();
94 if (isset($config_items[$config_item]))
96 return $config_items[$config_item];
99 $config = load_config();
101 if (!isset($config[$config_item]))
106 $config_items[$config_item] = $config[$config_item];
108 return $config_items[$config_item];
111 function display_error($error_message)
113 $exception = load_class('Exception');
114 echo $exception->display_error('An error has been encountered', $error_message);
118 function display_not_found($page = '')
120 $exception = load_class('Exception');
121 $exception->display_not_found($page);
125 function log_message($level = 'error', $message, $php_error = false)
128 $config = load_config();
130 if (get_config_value('logging_threshold') == 0)
135 $logging = load_class('Logging');
136 $logging->write_log_message($level, $message, $php_error);
139 function exception_handler($severity, $message, $file_path, $line_number)
141 if ($severity == E_STRICT
)
146 $exception = load_class('Exception');
148 if (($severity & error_reporting()) == $severity)
150 $exception->display_php_error($severity, $message, $file_path, $line_number);
153 $config = load_config();
155 if (get_config_value('logging_threshold') == 0)
160 $exception->log_exception($severity, $message, $file_path, $line_number);