diff --git a/app/src/Exception/TemplateNotSetException.php b/app/src/Exception/TemplateNotSetException.php new file mode 100644 index 0000000..7be37a3 --- /dev/null +++ b/app/src/Exception/TemplateNotSetException.php @@ -0,0 +1,7 @@ +render('channel/create.twig'); - } + protected string $template = "channel/create.twig"; } diff --git a/app/src/Handler/Page.php b/app/src/Handler/Page.php new file mode 100644 index 0000000..b89399e --- /dev/null +++ b/app/src/Handler/Page.php @@ -0,0 +1,24 @@ +template) { + throw new TemplateNotSetException("No template set."); + } + + return $this->render($this->template, $this->pageProps); + } +} diff --git a/app/src/Handler/Page/DashboardPage.php b/app/src/Handler/Page/DashboardPage.php index 113382e..b1333e4 100644 --- a/app/src/Handler/Page/DashboardPage.php +++ b/app/src/Handler/Page/DashboardPage.php @@ -8,10 +8,12 @@ use Psr\Log\LoggerInterface; use Slovocast\Domain\Repository\Channel\ChannelRepositoryInterface; use Slovocast\Domain\Repository\User\UserRepositoryInterface; use Slovocast\Exception\EntityNotFoundException; -use Slovocast\Handler\Handler; +use Slovocast\Handler\Page; -class DashboardPage extends Handler +class DashboardPage extends Page { + protected string $template = "dashboard"; + public function __construct( protected UserRepositoryInterface $userRepository, protected ChannelRepositoryInterface $channelRepository, @@ -33,6 +35,7 @@ class DashboardPage extends Handler $channel = null; } - return $this->render('dashboard.twig', [ 'channel' => $channel ]); + $this->pageProps = [ 'channel' => $channel ]; + return parent::handle(); } } diff --git a/app/src/Handler/Page/HomePage.php b/app/src/Handler/Page/HomePage.php index fffcb7b..6d3cb12 100644 --- a/app/src/Handler/Page/HomePage.php +++ b/app/src/Handler/Page/HomePage.php @@ -2,13 +2,9 @@ namespace Slovocast\Handler\Page; -use Psr\Http\Message\ResponseInterface as Response; -use Slovocast\Handler\Handler; +use Slovocast\Handler\Page; -class HomePage extends Handler +class HomePage extends Page { - public function handle(): Response - { - return $this->render('home.twig'); - } + protected string $template = "home.twig"; } diff --git a/app/src/Handler/User/Page/LoginUserPage.php b/app/src/Handler/User/Page/LoginUserPage.php index b793989..cab1b52 100644 --- a/app/src/Handler/User/Page/LoginUserPage.php +++ b/app/src/Handler/User/Page/LoginUserPage.php @@ -2,14 +2,9 @@ namespace Slovocast\Handler\User\Page; -use Odan\Session\SessionInterface; -use Psr\Http\Message\ResponseInterface as Response; -use Slovocast\Handler\Handler; +use Slovocast\Handler\Page; -class LoginUserPage extends Handler +class LoginUserPage extends Page { - public function handle(): Response - { - return $this->render('user/login.twig'); - } + protected string $template = "user/login.twig"; } diff --git a/app/src/Handler/User/Page/RegisterUserPage.php b/app/src/Handler/User/Page/RegisterUserPage.php index 71c238d..cf4c0c7 100644 --- a/app/src/Handler/User/Page/RegisterUserPage.php +++ b/app/src/Handler/User/Page/RegisterUserPage.php @@ -2,14 +2,9 @@ namespace Slovocast\Handler\User\Page; -use Odan\Session\SessionInterface; -use Psr\Http\Message\ResponseInterface as Response; -use Slovocast\Handler\Handler; +use Slovocast\Handler\Page; -class RegisterUserPage extends Handler +class RegisterUserPage extends Page { - public function handle(): Response - { - return $this->render('user/register.twig'); - } + protected string $template = "user/register.twig"; }