$name))
{
$self->$name = new $class;
return;
}
}
load_file($name, 'sys');
if(class_exists($class, FALSE))
{
$self->$name = new $class;
}
}
// --------------------------------------------------------------------------
/**
* Custom error handler
*/
function on_error($severity, $message, $filepath, $line, $context)
{
$levels = array(
E_ERROR => 'Error',
E_WARNING => 'Warning',
E_PARSE => 'Parsing Error',
E_NOTICE => 'Notice',
E_CORE_ERROR => 'Core Error',
E_CORE_WARNING => 'Core Warning',
E_COMPILE_ERROR => 'Compile Error',
E_COMPILE_WARNING => 'Compile Warning',
E_USER_ERROR => 'User Error',
E_USER_WARNING => 'User Warning',
E_USER_NOTICE => 'User Notice',
E_STRICT => 'Strict Error'
);
$severity = (isset($levels[$severity])) ? $levels[$severity] : $severity;
// Contain the content for buffering
ob_start();
include(APP_PATH.'/errors/error.php');
$buffer = ob_get_contents();
ob_end_clean();
echo $buffer;
}
// --------------------------------------------------------------------------
/**
* Custom exception handler
*/
function on_exception($exception)
{
// these are our templates
$traceline = "#%s %s(%s): %s(%s)";
$msg = "PHP Fatal error: Uncaught exception '%s' with message '%s' in %s:%s
Stack trace:
%s
thrown in %s on line %s";
// alter your trace as you please, here
$trace = $exception->getTrace();
// build your tracelines
$result = array();
foreach ($trace as $key => $stackPoint) {
$result[] = sprintf(
$traceline,
$key,
$stackPoint['file'],
$stackPoint['line'],
$stackPoint['function'],
implode(', ', $stackPoint['args'])
);
}
// trace always ends with {main}
$result[] = '#' . ++$key . ' {main}';
// write tracelines into main template
$msg = sprintf(
$msg,
get_class($exception),
$exception->getMessage(),
$exception->getFile(),
$exception->getLine(),
implode("
", $result),
$exception->getFile(),
$exception->getLine()
);
echo $msg;
}
// --------------------------------------------------------------------------
/**
* Calls the appropriate module/controller/function based on the url
*/
function route()
{
$controller = "welcome";
$module = "welcome";
$func = "index";
if( ! empty($_SERVER['PATH_INFO']))
{
$segments = explode('/', $_SERVER['PATH_INFO']);
}
load_file("controllers/{$controller}", $module);
$class = new $controller;
call_user_func(array($class, $func));
}
// --------------------------------------------------------------------------
//Set error handlers
set_error_handler('on_error');
set_exception_handler('on_exception');
// Load Most Common libraries
require_once('miniMVC.php');
require_once('output.php');
require_once('page.php');
require_once('db.php');
//Route to the appropriate function
route();
// End of common.php