carbonPHP Initial commit v2.0
[carbonphp.git] / Source / carbon / core / Common.php
blob0b151e6735c11fce450ed70acdd749ef1f925e9f
1 <?php
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);
26 $is_subclass = true;
28 else
30 if (file_exists(APP_PATH . 'libraries/' . $class_name . FILE_EXT))
32 require(APP_PATH . 'libraries/' . $class_name . FILE_EXT);
34 $is_subclass = false;
36 else
38 require(CARBON_PATH . 'libraries/' . $class_name . FILE_EXT);
39 $is_subclass = false;
43 if (!$instantiate)
45 $class_objects[$class_name] = true;
47 return $class_objects[$class_name];
50 if ($is_subclass)
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]))
103 return false;
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);
115 exit();
118 function display_not_found($page = '')
120 $exception = load_class('Exception');
121 $exception->display_not_found($page);
122 exit();
125 function log_message($level = 'error', $message, $php_error = false)
127 static $logging;
128 $config = load_config();
130 if (get_config_value('logging_threshold') == 0)
132 return false;
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)
143 return true;
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)
157 return true;
160 $exception->log_exception($severity, $message, $file_path, $line_number);