Пример #1
0
 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('&nbsp;&nbsp;&nbsp;', '&nbsp;'), $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;
 }
Пример #2
0
 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}";
 }