示例#1
0
require 'bootstrap.php';
set_error_handler(function ($c, $e, $f = 0, $l = 0) {
    $v = new View('error');
    $v->e = $e;
    $v->f = $f;
    $v->l = $l;
    echo $v;
    _log("{$e} [{$f}:{$l}]");
});
function exception($e)
{
    $v = new View('exception');
    $v->e = $e;
    _log($e->getMessage() . ' ' . $e->getFile());
    die($v);
}
set_exception_handler('exception');
register_shutdown_function(function () {
    if ($e = error_get_last()) {
        exception(new ErrorException($e['message'], $e['type'], 0, v($e['file']), $e['line']));
    }
});
$c = 'controller_' . (url(0) ?: 'home');
$m = url(1) ?: 'index';
if (!is_file(p("classes/{$c}")) || !($c = new $c()) || $m == 'render' || !in_array($m, get_class_methods($c))) {
    $c = new controller();
    $m = 'show_404';
}
call_user_func_array(array($c, $m), array_slice(url(), 2));
$c->render();