Files
xamxam/app/router.php
2026-04-24 23:01:25 +02:00

55 lines
1.2 KiB
PHP

<?php
/**
* Router script for PHP built-in development server (php -S).
*
* All non-asset requests go through the front controller (public/index.php).
* Admin panel and static files are served directly.
*/
$uri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
// Static assets: let the dev server handle them directly
$ext = pathinfo($uri, PATHINFO_EXTENSION);
if (
in_array(
$ext,
[
"css",
"js",
"png",
"jpg",
"jpeg",
"gif",
"ico",
"svg",
"woff",
"woff2",
"ttf",
"eot",
"otf",
"map",
],
true,
)
) {
return false; // serve directly
}
// Admin panel: serve files directly
if (str_starts_with($uri, "/admin")) {
// Rewrite /admin → /admin/index.php
$file = __DIR__ . "/public" . $uri;
if (is_dir($file)) {
$file .= "/index.php";
}
if (file_exists($file)) {
include $file;
return true;
}
}
// Send everything else through the front controller
$_SERVER["SCRIPT_NAME"] = "/index.php";
require __DIR__ . "/public/index.php";
return true;