. // }}} namespace App\Controller; use App\Core\Controller; use App\Core\DB\DB; use function App\Core\I18n\_m; use App\Util\Exception\ClientException; use Symfony\Component\HttpFoundation\Request; class Note extends Controller { /** * Generic function that handles getting a representation for a note */ private function note(int $id, callable $handle) { $note = DB::findOneBy('note', ['id' => $id]); if (empty($note)) { throw new ClientException(_m('No such note.'), 404); } else { return $handle($note); } } /** * The page where the note and it's info is shown */ public function NoteShow(Request $request, int $id) { return $this->note($id, fn ($note) => ['_template' => '/cards/note/view.html.twig', 'note' => $note]); } }