index.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Point d'entrée principal de l'application
  4. *
  5. * Ce fichier charge la configuration et affiche la page d'accueil.
  6. */
  7. // Chargement de la configuration
  8. $config = require_once __DIR__ . '/../config/config.php';
  9. // Chargement des routes
  10. $routes = require_once __DIR__ . '/../routes/web.php';
  11. // Récupération de l'URI demandée
  12. $rawUri = $_SERVER['REQUEST_URI'] ?? '/';
  13. $uri = parse_url($rawUri, PHP_URL_PATH);
  14. // Gestion des environnements avec un sous-dossier (comme MAMP)
  15. $basePath = '/map-generator';
  16. if (strpos($uri, $basePath) === 0) {
  17. $uri = substr($uri, strlen($basePath));
  18. }
  19. // Si l'URI est vide, on la définit sur /
  20. if (empty($uri)) {
  21. $uri = '/';
  22. }
  23. // Gestion du routing
  24. if (isset($routes[$uri])) {
  25. $route = $routes[$uri];
  26. if (is_callable($route)) {
  27. $route = $route();
  28. }
  29. if (is_array($route) && count($route) === 2) {
  30. [$controller, $method] = $route;
  31. $controller::$method();
  32. } else {
  33. // Page 404
  34. http_response_code(404);
  35. echo "Page non trouvée";
  36. }
  37. } else {
  38. // Routes simples non-statiques (paramètres)
  39. // Edition d'un projet : /projects/{id}/edit
  40. if (preg_match('#^/projects/(\d+)/edit$#', $uri, $m)) {
  41. require_once __DIR__ . '/../app/Controllers/HomeController.php';
  42. HomeController::editProject((int)$m[1]);
  43. return;
  44. }
  45. // Page non trouvée
  46. http_response_code(404);
  47. echo "Page non trouvée";
  48. }