deadjournal/index.php

67 lines
1.7 KiB
PHP
Raw Normal View History

2025-01-08 22:46:44 +05:00
<?php
require_once __DIR__ . '/config.php';
spl_autoload_register(function ($class) {
$prefix = 'Core\\';
$base_dir = __DIR__ . '/core/';
if (strncmp($prefix, $class, strlen($prefix)) === 0) {
$relative_class = substr($class, strlen($prefix));
$file = $base_dir . $relative_class . '.php';
if (file_exists($file)) {
require $file;
return;
}
}
$prefix = 'Models\\';
$base_dir = __DIR__ . '/models/';
if (strncmp($prefix, $class, strlen($prefix)) === 0) {
$relative_class = substr($class, strlen($prefix));
$file = $base_dir . $relative_class . '.php';
if (file_exists($file)) {
require $file;
return;
}
}
$prefix = 'Controllers\\';
$base_dir = __DIR__ . '/controllers/';
if (strncmp($prefix, $class, strlen($prefix)) === 0) {
$relative_class = substr($class, strlen($prefix));
$file = $base_dir . $relative_class . '.php';
if (file_exists($file)) {
require $file;
return;
}
}
});
require_once __DIR__ . '/core/helpers/functions.php';
// A simple router
$url = $_GET['url'] ?? 'post/index';
$urlParts = explode('/', $url);
$controllerName = ucfirst($urlParts[0]) . 'Controller';
$actionName = $urlParts[1] ?? 'index';
$param = $urlParts[2] ?? null;
$controllerClass = 'Controllers\\' . $controllerName;
if (!class_exists($controllerClass)) {
die('Controller not found');
}
$controllerObject = new $controllerClass();
if (!method_exists($controllerObject, $actionName)) {
die('Action not found');
}
if ($param) {
$controllerObject->$actionName($param);
} else {
$controllerObject->$actionName();
}