CodeIgniter4/public/index.php

102 lines
3.2 KiB
PHP
Raw Normal View History

<?php
2024-02-18 21:38:41 +09:00
/*
*---------------------------------------------------------------
* CHECK PHP VERSION
*---------------------------------------------------------------
*/
2023-10-13 17:25:17 +09:00
$minPhpVersion = '8.1'; // 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
);
exit($message);
}
2024-02-18 21:38:41 +09:00
/*
*---------------------------------------------------------------
* SET THE CURRENT DIRECTORY
*---------------------------------------------------------------
*/
// Path to the front controller (this file)
2018-10-29 23:25:57 -05:00
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR);
2022-05-08 07:30:48 +09:00
// Ensure the current directory is pointing to the front controller's directory
if (getcwd() . DIRECTORY_SEPARATOR !== FCPATH) {
chdir(FCPATH);
}
2022-05-08 07:30:48 +09:00
2016-06-23 00:29:44 -05:00
/*
*---------------------------------------------------------------
* BOOTSTRAP THE APPLICATION
2016-06-23 00:29:44 -05:00
*---------------------------------------------------------------
* 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.
*/
2024-02-18 21:38:41 +09:00
// LOAD OUR PATHS CONFIG FILE
// This is the line that might need to be changed, depending on your folder structure.
2022-05-07 13:51:40 +09:00
require FCPATH . '../app/Config/Paths.php';
// ^^^ Change this line if you move your application folder
$paths = new Config\Paths();
2024-02-18 21:38:41 +09:00
// LOAD DOTENV FILE
// Load environment settings from .env files into $_SERVER and $_ENV
require_once $paths->systemDirectory . '/Config/DotEnv.php';
(new CodeIgniter\Config\DotEnv($paths->appDirectory . '/../'))->load();
2024-02-18 21:38:41 +09:00
// DEFINE ENVIRONMENT
if (! defined('ENVIRONMENT')) {
$env = $_ENV['CI_ENVIRONMENT'] ?? $_SERVER['CI_ENVIRONMENT'] ?? getenv('CI_ENVIRONMENT');
define('ENVIRONMENT', ($env !== false) ? $env : 'production');
unset($env);
}
2024-02-18 21:38:41 +09:00
// LOAD THE FRAMEWORK BOOTSTRAP FILE
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php';
// Load Config Cache
// $factoriesCache = new \CodeIgniter\Cache\FactoriesCache();
// $factoriesCache->load('config');
// ^^^ Uncomment these lines if you want to use Config Caching.
/*
* ---------------------------------------------------------------
* GRAB OUR CODEIGNITER INSTANCE
* ---------------------------------------------------------------
*
* The CodeIgniter class contains the core functionality to make
2023-04-13 17:44:37 +09:00
* the application run, and does all the dirty work to get
* the pieces all working together.
*/
2022-05-08 07:30:48 +09:00
$app = Config\Services::codeigniter();
$app->initialize();
$context = is_cli() ? 'php-cli' : 'web';
$app->setContext($context);
/*
*---------------------------------------------------------------
* LAUNCH THE APPLICATION
*---------------------------------------------------------------
2023-04-13 17:44:37 +09:00
* Now that everything is set up, it's time to actually fire
* up the engines and make this app do its thang.
*/
2022-05-08 07:30:48 +09:00
$app->run();
2023-07-11 18:02:03 +09:00
// Save Config Cache
// $factoriesCache->save('config');
// ^^^ Uncomment this line if you want to use Config Caching.
2023-07-11 18:02:03 +09:00
// Exits the application, setting the exit code for CLI-based applications
// that might be watching.
exit(EXIT_SUCCESS);