corso https://vola.udemy.com/course/php-mvc-from-scratch/learn/lecture/40931984#overview
filippo.bertilotti
2024-05-20 b87ffe00b00d9d473db15ebd251553b17a5eff94
index.php
@@ -1,29 +1,32 @@
<?php
declare(strict_types= 1);
spl_autoload_register(function ($class) {
    require "src/$class.php";
    require "src/". str_replace("\\", "/", $class). ".php";
 });
$dotenv = new Framework\Dotenv;
$dotenv->load(".env");
print_r($_ENV);
set_error_handler("Framework\ErrorHandler::handleError");
set_exception_handler("Framework\ErrorHandler::handleException");
$path = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$segments = explode("/", $path);
$router = new Router;
$router->add("/home/index", ["controller" => "home", "action" => "index"]);
$router->add("/products", ["controller" => "products", "action" => "index"]);
$router->add("/", ["controller" => "home", "action" => "index"]);
$params = $router->match($path);
if($params === false) {
    exit("No routes matched");
if ($path === false) {
    throw new UnexpectedValueException("Malformed URL: {$_SERVER["REQUEST_URI"]}");
}
$controller = $params["controller"];
$action = $params["action"];
$segments = explode("/", $path);
require "src/controllers/$controller.php";
$router = require "config/routes.php";
$controller_object = new $controller;
$container = require "config/services.php";
$controller_object->$action();
$dispatcher = new Framework\Dispatcher($router, $container);
$dispatcher->handle($path);