42 lines
1.0 KiB
PHP
42 lines
1.0 KiB
PHP
<?php
|
|
error_reporting(E_ALL);
|
|
ini_set("display_errors", 1);
|
|
|
|
session_start([
|
|
'cookie_lifetime' => 86400,
|
|
'cookie_secure' => true,
|
|
'cookie_httponly' => true,
|
|
'cookie_samesite' => 'Strict'
|
|
]);
|
|
|
|
if(empty($_SESSION['token']))
|
|
$_SESSION['token'] = bin2hex(random_bytes(32));
|
|
|
|
require_once __DIR__ . "/../vendor/autoload.php";
|
|
|
|
use Blog\Core\Router;
|
|
use Blog\Core\Container;
|
|
use Blog\Template\Twig;
|
|
use Blog\Utils\AuthHelper;
|
|
|
|
AuthHelper::initialize(new Blog\Model\UserModel());
|
|
$router = new Router();
|
|
$container = new Container();
|
|
|
|
$container->set('postModel', fn() => new Blog\Model\PostModel());
|
|
$container->set('userModel', fn() => new Blog\Model\UserModel());
|
|
|
|
$twig = new Twig(__DIR__ . "/../views");
|
|
$twig->setGlobals([
|
|
'isLoggedIn' => Blog\Utils\AuthHelper::isLoggedIn(),
|
|
'csrf' => Blog\Middleware\AuthMiddleware::generateCSRFToken()
|
|
]);
|
|
$twig = $container->set('twig', fn() => $twig);
|
|
|
|
require_once __DIR__ . "/../routes/web.php";
|
|
|
|
$router->dispatch(
|
|
new Blog\Http\Request($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']),
|
|
new Blog\Http\Response
|
|
);
|