/** * @param AuthorQuery $query */ public function handle(AuthorQuery $query) { try { $this->guardAuthorNameIsValid($query->getAuthorName()); $authorTemplate = $this->getAuthorTemplate($query->getAuthorName()); (new ThemePage('Blog/Read/Pages/Authors/' . $authorTemplate, []))->respond(); } catch (AuthorNotFound $e) { $requestInfo = $query->getRequestInfo(); $page = new ThemePage('Blog/Read/Pages/Error404.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } }
/** * @param AbstractQuery $query */ public function handle(AbstractQuery $query) { try { $books = $this->bookReadService->getAllBooks(); $posts = $this->blogPostReadService->getAllPosts(); $page = new ThemePage('Posts/Read/Pages/Abstract.twig', ['books' => $books, 'posts' => $posts]); $page->respond(); } catch (BlogException $e) { $requestInfo = $query->getRequestInfo(); $page = new ThemePage('Blog/Read/Pages/Error500.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } }
/** * @param ShowPostQuery $query */ public function handle(ShowPostQuery $query) { $requestInfo = $query->getRequestInfo(); try { $postData = $this->blogPostReadService->getPostDataByUrl($requestInfo->getUri()); $previousPost = $this->blogPostReadService->getPreviousPostOf($postData); $nextPost = $this->blogPostReadService->getNextPostOf($postData); $page = new ThemePage('Posts/Read/Pages/ShowPost.twig', ['post' => $postData, 'previous' => $previousPost, 'next' => $nextPost]); $page->respond(); } catch (BlogPostDataNotFound $e) { $page = new ThemePage('Blog/Read/Pages/Error404.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } }
/** * @param \Exception $exception * * @throws \Exception */ public function handleUncaughtException(\Exception $exception) { echo '<pre>', htmlspecialchars(print_r($exception, 1)), '</pre>'; exit; try { throw $exception; } catch (MalformedRequestUri $e) { $requestInfo = RequestInfo::fromEnv(); $page = new ThemePage('Blog/Read/Pages/Error404.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } catch (\Exception $e) { $requestInfo = RequestInfo::fromEnv(); $page = new ThemePage('Blog/Read/Pages/Error500.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } }