Files
blog/public/index.php
2025-06-20 07:55:37 +00:00

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
);