Files
budget/app/bootstrap.php
T
Ty Clifford b7eaa81501 -
2026-06-14 15:25:31 -04:00

39 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
use Budget\Auth;
use Budget\BudgetService;
use Budget\Database;
use Budget\Settings;
const APP_ROOT = __DIR__ . '/..';
spl_autoload_register(static function (string $class): void {
$prefix = 'Budget\\';
if (!str_starts_with($class, $prefix)) {
return;
}
$path = __DIR__ . '/' . str_replace('\\', '/', substr($class, strlen($prefix))) . '.php';
if (is_file($path)) {
require $path;
}
});
if (PHP_SAPI !== 'cli' && session_status() !== PHP_SESSION_ACTIVE) {
session_name('neon_ledger_session');
session_set_cookie_params([
'httponly' => true,
'samesite' => 'Lax',
'secure' => !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off',
]);
session_start();
}
$database = new Database(APP_ROOT . '/config/database.json', APP_ROOT);
$pdo = $database->pdo();
$settings = new Settings($pdo);
date_default_timezone_set((string) $settings->get('app.timezone', 'America/New_York'));
$auth = new Auth($pdo, $settings);
$budget = new BudgetService($pdo, $settings);