devsofttech_hms_ci4/public/index.php

100 lines
3.1 KiB
PHP

<?php
use CodeIgniter\Boot;
use Config\Paths;
/*
*---------------------------------------------------------------
* CHECK PHP VERSION
*---------------------------------------------------------------
*/
$minPhpVersion = '8.2'; // If you update this, don't forget to update `spark`.
if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
$message = sprintf(
'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s',
$minPhpVersion,
PHP_VERSION,
);
header('HTTP/1.1 503 Service Unavailable.', true, 503);
echo $message;
exit(1);
}
/*
*---------------------------------------------------------------
* SET THE CURRENT DIRECTORY
*---------------------------------------------------------------
*/
// Path to the front controller (this file)
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR);
// Ensure the current directory is pointing to the front controller's directory
if (getcwd() . DIRECTORY_SEPARATOR !== FCPATH) {
chdir(FCPATH);
}
/*
*---------------------------------------------------------------
* TEMPORARY SERVER DEBUG FALLBACK
*---------------------------------------------------------------
* New servers sometimes force CI_ENVIRONMENT=production via Apache/PHP-FPM,
* which hides the real 500 error details. Keep this block while debugging
* migration issues, then remove it after root cause is fixed.
*/
$_SERVER['CI_ENVIRONMENT'] = 'development';
putenv('CI_ENVIRONMENT=development');
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
ini_set('log_errors', '1');
$fallbackErrorLog = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'hms_ci4_php_errors.log';
ini_set('error_log', $fallbackErrorLog);
register_shutdown_function(static function () use ($fallbackErrorLog): void {
$lastError = error_get_last();
if ($lastError === null) {
return;
}
$fatalTypes = [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR];
if (! in_array((int) ($lastError['type'] ?? 0), $fatalTypes, true)) {
return;
}
$line = sprintf(
"[%s] FATAL %s in %s:%d\n",
date('Y-m-d H:i:s'),
(string) ($lastError['message'] ?? 'Unknown fatal error'),
(string) ($lastError['file'] ?? 'unknown'),
(int) ($lastError['line'] ?? 0)
);
@file_put_contents($fallbackErrorLog, $line, FILE_APPEND);
});
/*
*---------------------------------------------------------------
* BOOTSTRAP THE APPLICATION
*---------------------------------------------------------------
* This process sets up the path constants, loads and registers
* our autoloader, along with Composer's, loads our constants
* and fires up an environment-specific bootstrapping.
*/
// LOAD OUR PATHS CONFIG FILE
// This is the line that might need to be changed, depending on your folder structure.
require FCPATH . '../app/Config/Paths.php';
// ^^^ Change this line if you move your application folder
$paths = new Paths();
// LOAD THE FRAMEWORK BOOTSTRAP FILE
require $paths->systemDirectory . '/Boot.php';
exit(Boot::bootWeb($paths));