public function __construct($level = DEBUG, $dest = 'tiimber.log') { $this->dest = $det; $this->setBaseLevel($level); Memory::events()->on(LOG, function (string $level, string $message) { if ($this->isLoggable($level)) { $this->log($message); } }); }
private function emitRequest($request, $response) { $render = new Renderer(); $route = REQUEST . ES; try { $match = $this->resolve($this->routes, $request->getMethod(), $request->getPath()); $route .= $match['_route']; $this->dispatcher->emit(REQUEST, strtolower($match['_route']), $render, ['request' => $request, 'args' => $match]); } catch (RouteNotFoundException $e) { $this->dispatcher->emit(ERROR, '404', $render, ['request' => $request, 'args' => []]); Memory::get(HTTP)->set(CODE, 404); } catch (\Exception $e) { $this->log(LOG_ERROR, $e->getMessage()); $this->log(LOG_ERROR, $e->getTraceAsString()); $this->dispatcher->emit(ERROR, '500', $render, ['request' => $request, 'args' => ['error' => $e]]); Memory::get(HTTP)->set(CODE, 500); } $layout = Memory::get(LAYOUT)->get('\\Blog\\Layouts\\DefaultLayout'); Memory::events()->emit(END, ['content' => $render->render($this->resolveLayout($route))]); }
public function emit($event, $name, $render, $args) { Memory::events()->emit($event, ['event' => $name, 'renderer' => $render, 'parameters' => $args]); }