Throw extension if required ext is missing

This commit is contained in:
Valithor Obsidion 2025-08-15 02:50:16 -04:00
parent bcb9139995
commit 51a65506c1
2 changed files with 24 additions and 7 deletions

View File

@ -31,8 +31,20 @@ if (! $autoloader = require file_exists(__DIR__.'/../vendor/autoload.php') ? __D
throw new \Exception('Composer autoloader not found. Run `composer install` and try again.'); throw new \Exception('Composer autoloader not found. Run `composer install` and try again.');
} }
if (! extension_loaded('sqlite3')) { // Check required extensions
throw new \Exception('The SQLite3 extension is required but not loaded. Please enable it in your PHP configuration.'); $requiredExtensions = [
'sqlite3',
'gd',
'imap',
'redis',
'mongodb'
];
if ($missing = array_filter($requiredExtensions, fn($ext) => !extension_loaded($ext))) {
throw new \Exception(
'Required PHP extensions missing: ' . implode(', ', $missing) .
'. Please enable them in your PHP configuration.'
);
} }
$uri = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/')); $uri = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));

View File

@ -21,11 +21,16 @@ function index(): string|false
{ {
$page = false; $page = false;
if (user()->currentaction === 'In Town') { if (! $user = user()) {
error_log('User not found in index() function.');
return $page;
}
if ($user->currentaction === 'In Town') {
$page = Towns::town(); $page = Towns::town();
} elseif (user()->currentaction === 'Exploring') { } elseif ($user->currentaction === 'Exploring') {
$page = Explore::explore(); $page = Explore::explore();
} elseif (user()->currentaction === 'Fighting') { } elseif ($user->currentaction === 'Fighting') {
redirect('/fight'); redirect('/fight');
} }
@ -158,7 +163,7 @@ function render(string $path_to_base_view, array $data = []): string|false
{ {
ob_start(); ob_start();
extract($data); extract($data);
require __DIR__."/../templates/$path_to_base_view.php"; require __DIR__."/../../templates/$path_to_base_view.php";
return ob_get_clean(); return ob_get_clean();
} }
@ -676,7 +681,7 @@ function is_post(): bool
/** /**
* Get the current page title per updates. Optionally set a new title. * Get the current page title per updates. Optionally set a new title.
*/ */
function page_title(string $new_title = ''): string function page_title(?string $new_title = null): string
{ {
if ($new_title) { if ($new_title) {
return $GLOBALS['state']['new-page-title'] = $new_title; return $GLOBALS['state']['new-page-title'] = $new_title;