public function handleException($route, \Exception $e) { $reg = Registry::getInstance(); $t = $reg->twig->loadTemplate('error.tpl'); $c = array(); $c['route'] = $route; $c['type'] = get_class($e); $c['msg'] = $e->getMessage(); $trace = $e->getTrace(); foreach ($trace as $key => $entry) { $file = file_get_contents($entry['file']); $lines = explode("\n", $file); $start = $entry['line'] - 5; $end = $entry['line'] + 5; $trace[$key]['lines'] = array(); if ($start < 0) { $start = 0; } if ($end > count($lines)) { $end = count($lines); } for ($i = $start; $i < $end; ++$i) { $trace[$key]['lines'][$i] = str_replace(array("\t", ' '), array(' ', ' '), $lines[$i]); } } $c['trace'] = $trace; $out = $t->render($c); if (Auth::isLoggedin()) { $userid = Auth::$profile->id; } else { $userid = 0; } if (!DEBUG) { DB::query("INSERT into errorlog(time,message,user_id) values(now(),'" . DB::escape($out) . "',{$userid})"); if (isset($reg->admin_email)) { $ms = new MailService('smtp.gmail.com', 465, '*****@*****.**', 'edderkop'); $ms->send_mail($reg->admin_email, '*****@*****.**', 'Error occured', '', $out); } } echo $out; }
private function solveEqualOperator($v, $f, $scope) { if ($v instanceof BaseModel) { $value = $v->id; $f = sprintf('%s_id', $f); } else { $value = sprintf("'%s'", DB::escape($v)); } return "{$scope}.`{$f}` = {$value}"; }