DigiWill/public/index.php

38 lines
1.1 KiB
PHP

<?php
session_start([
'cookie_httponly' => true,
'cookie_secure' => !empty($_SERVER['HTTPS']),
'cookie_samesite' => 'Lax',
]);
require __DIR__ . '/../vendor/autoload.php';
use DI\Container;
use DigiWill\Controllers\UserController;
use Slim\Factory\AppFactory;
use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;
use Tests\Fakes\FakeUserRepository;
use DigiWill\Repositories\UserRepository;
use DigiWill\MiddleWare\AuthMiddleware;
$container = new Container([
UserRepository::class => DI\create(FakeUserRepository::class),
]);
$app = AppFactory::createFromContainer($container);
$twig = Twig::create(__DIR__ . '/../templates', ['cache' => false]);
$auth = new AuthMiddleware();
$app->add(TwigMiddleware::create($app, $twig));
$app->addErrorMiddleware(true, false, false);
$app->get('/', [UserController::class, 'home']);
$app->get('/login', [UserController::class, 'login']);
$app->get('/logout', [UserController::class, 'logout']);
$app->post('/login', [UserController::class, 'doLogin']);
$app->get('/dashboard', [UserController::class, 'dashboard'])->add($auth);
$app->run();