WizdomWeb/public/index.php

54 lines
1.5 KiB
PHP

<?php
/**
* File: public/index.php
* Version: v1.4
* Purpose: Application entry point for Arsha one-pager with early session start
* Project: Wizdom Networks Website
*/
// Enable strict error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Autoload classes via Composer
require_once __DIR__ . '/../vendor/autoload.php';
// Load environment variables
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__ . '/../');
$dotenv->load();
// Start session before any router logic
use WizdomNetworks\WizeWeb\Utilities\SessionHelper;
SessionHelper::start();
// Import core system utilities
use WizdomNetworks\WizeWeb\Core\Router;
use WizdomNetworks\WizeWeb\Utilities\Logger;
use WizdomNetworks\WizeWeb\Utilities\ErrorHandler;
// Import controllers
use WizdomNetworks\WizeWeb\Controllers\LandingController;
use WizdomNetworks\WizeWeb\Controllers\ContactController;
// Boot the application
Logger::info("Bootstrapping application");
// Initialize router and define routes
$router = new Router();
// Landing page routes
$router->add('', LandingController::class, 'index');
$router->add('/', LandingController::class, 'index');
$router->add('index.php', LandingController::class, 'index');
// Contact form routes
$router->add('/contact', ContactController::class, 'index', 'GET');
$router->add('/contact', ContactController::class, 'submit', 'POST');
// Dispatch the incoming request
$requestedPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$router->dispatch($requestedPath);