67 lines
1.7 KiB
PHP
Executable File
67 lines
1.7 KiB
PHP
Executable File
<?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();
|
|
}
|