corso https://vola.udemy.com/course/php-mvc-from-scratch/learn/lecture/40931984#overview
filippo.bertilotti
2024-05-10 e2903b7b32aa672c9d821b0b18d26c20db5b00f4
index.php
@@ -1,12 +1,33 @@
<?php
    $dns = "mysql:host=localhost;dbname=product_db;charset=utf8;port=3306";
    $pdo = new PDO($dns, "product_db_user", "secret", [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);
    $stmt = $pdo->query("SELECT * FROM product");
spl_autoload_register(function ($class) {
    require "src/". str_replace("\\", "/", $class). ".php";
 });
    $products = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($products);
?>
$path = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$segments = explode("/", $path);
$router = new Framework\Router;
$router->add("/{controller}/{action}");
$router->add("/{controller}/{id}/{action}");
$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);
print_r($params);
if($params === false) {
    exit("No routes matched");
}
$controller = "App\Controllers\\" . ucwords($params["controller"]);
$action = $params["action"];
$controller_object = new $controller;
$controller_object->$action();