codeigniter4.3.8 to 4.5.1 upgrade...

This commit is contained in:
choi.jh 2024-04-22 14:26:43 +09:00
parent 340b0b9ff8
commit 5d1e66f131
5 changed files with 161 additions and 110 deletions

113
app/Config/Routing.php Normal file
View File

@ -0,0 +1,113 @@
<?php
/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Config;
use CodeIgniter\Config\Routing as BaseRouting;
/**
* Routing configuration
*/
class Routing extends BaseRouting
{
/**
* An array of files that contain route definitions.
* Route files are read in order, with the first match
* found taking precedence.
*
* Default: APPPATH . 'Config/Routes.php'
*/
public array $routeFiles = [
APPPATH . 'Config/Routes.php',
];
/**
* The default namespace to use for Controllers when no other
* namespace has been specified.
*
* Default: 'App\Controllers'
*/
public string $defaultNamespace = 'App\Controllers';
/**
* The default controller to use when no other controller has been
* specified.
*
* Default: 'Home'
*/
public string $defaultController = 'Home';
/**
* The default method to call on the controller when no other
* method has been set in the route.
*
* Default: 'index'
*/
public string $defaultMethod = 'index';
/**
* Whether to translate dashes in URIs to underscores.
* Primarily useful when using the auto-routing.
*
* Default: false
*/
public bool $translateURIDashes = false;
/**
* Sets the class/method that should be called if routing doesn't
* find a match. It can be either a closure or the controller/method
* name exactly like a route is defined: Users::index
*
* This setting is passed to the Router class and handled there.
*
* If you want to use a closure, you will have to set it in the
* class constructor or the routes file by calling:
*
* $routes->set404Override(function() {
* // Do something here
* });
*
* Example:
* public $override404 = 'App\Errors::show404';
*/
public ?string $override404 = null;
/**
* If TRUE, the system will attempt to match the URI against
* Controllers by matching each segment against folders/files
* in APPPATH/Controllers, when a match wasn't found against
* defined routes.
*
* If FALSE, will stop searching and do NO automatic routing.
*/
public bool $autoRoute = false;
/**
* If TRUE, will enable the use of the 'prioritize' option
* when defining routes.
*
* Default: false
*/
public bool $prioritize = false;
/**
* Map of URI segments and namespaces. For Auto Routing (Improved).
*
* The key is the first URI segment. The value is the controller namespace.
* E.g.,
* [
* 'blog' => 'Acme\Blog\Controllers',
* ]
*
* @var array [ uri_segment => namespace ]
*/
public array $moduleRoutes = [];
}

View File

@ -5,12 +5,12 @@
"homepage": "https://codeigniter.com", "homepage": "https://codeigniter.com",
"license": "MIT", "license": "MIT",
"require": { "require": {
"php": "^7.4 || ^8.0", "php": "^8.2",
"phpoffice/phpspreadsheet": "^1.27", "phpoffice/phpspreadsheet": "^1.27",
"cloudflare/sdk": "1.3", "cloudflare/sdk": "^1.3",
"onokumus/metismenu": "dev-master", "onokumus/metismenu": "dev-master",
"twbs/bootstrap": "5.2.3", "twbs/bootstrap": "^5.2.3",
"codeigniter4/framework": "4.3.8" "codeigniter4/framework": "^4.5.1"
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.9", "fakerphp/faker": "^1.9",

View File

@ -1,7 +1,12 @@
<?php <?php
// Check PHP version. /*
$minPhpVersion = '7.4'; // If you update this, don't forget to update `spark`. *---------------------------------------------------------------
* CHECK PHP VERSION
*---------------------------------------------------------------
*/
$minPhpVersion = '8.1'; // If you update this, don't forget to update `spark`.
if (version_compare(PHP_VERSION, $minPhpVersion, '<')) { if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
$message = sprintf( $message = sprintf(
'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s', 'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s',
@ -9,9 +14,18 @@ if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
PHP_VERSION PHP_VERSION
); );
exit($message); header('HTTP/1.1 503 Service Unavailable.', true, 503);
echo $message;
exit(1);
} }
/*
*---------------------------------------------------------------
* SET THE CURRENT DIRECTORY
*---------------------------------------------------------------
*/
// Path to the front controller (this file) // Path to the front controller (this file)
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR); define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR);
@ -29,59 +43,14 @@ if (getcwd() . DIRECTORY_SEPARATOR !== FCPATH) {
* and fires up an environment-specific bootstrapping. * and fires up an environment-specific bootstrapping.
*/ */
// Load our paths config file // LOAD OUR PATHS CONFIG FILE
// This is the line that might need to be changed, depending on your folder structure. // This is the line that might need to be changed, depending on your folder structure.
require FCPATH . '../app/Config/Paths.php'; require FCPATH . '../app/Config/Paths.php';
// ^^^ Change this line if you move your application folder // ^^^ Change this line if you move your application folder
$paths = new Config\Paths(); $paths = new Config\Paths();
// Location of the framework bootstrap file. // LOAD THE FRAMEWORK BOOTSTRAP FILE
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php'; require $paths->systemDirectory . '/Boot.php';
// Load environment settings from .env files into $_SERVER and $_ENV exit(CodeIgniter\Boot::bootWeb($paths));
require_once SYSTEMPATH . 'Config/DotEnv.php';
(new CodeIgniter\Config\DotEnv(ROOTPATH))->load();
// Define ENVIRONMENT
if (! defined('ENVIRONMENT')) {
define('ENVIRONMENT', env('CI_ENVIRONMENT', 'production'));
}
// 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
* the application run, and does all the dirty work to get
* the pieces all working together.
*/
$app = Config\Services::codeigniter();
$app->initialize();
$context = is_cli() ? 'php-cli' : 'web';
$app->setContext($context);
/*
*---------------------------------------------------------------
* LAUNCH THE APPLICATION
*---------------------------------------------------------------
* Now that everything is set up, it's time to actually fire
* up the engines and make this app do its thang.
*/
$app->run();
// Save Config Cache
// $factoriesCache->save('config');
// ^^^ Uncomment this line if you want to use Config Caching.
// Exits the application, setting the exit code for CLI-based applications
// that might be watching.
exit(EXIT_SUCCESS);

66
spark
View File

@ -12,13 +12,16 @@
/* /*
* -------------------------------------------------------------------- * --------------------------------------------------------------------
* CodeIgniter command-line tools * CODEIGNITER COMMAND-LINE TOOLS
* -------------------------------------------------------------------- * --------------------------------------------------------------------
* The main entry point into the CLI system and allows you to run * The main entry point into the CLI system and allows you to run
* commands and perform maintenance on your application. * commands and perform maintenance on your application.
* */
* Because CodeIgniter can handle CLI requests as just another web request
* this class mainly acts as a passthru to the framework itself. /*
*---------------------------------------------------------------
* CHECK SERVER API
*---------------------------------------------------------------
*/ */
// Refuse to run when called from php-cgi // Refuse to run when called from php-cgi
@ -26,8 +29,13 @@ if (strpos(PHP_SAPI, 'cgi') === 0) {
exit("The cli tool is not supported when running php-cgi. It needs php-cli to function!\n\n"); exit("The cli tool is not supported when running php-cgi. It needs php-cli to function!\n\n");
} }
// Check PHP version. /*
$minPhpVersion = '7.4'; // If you update this, don't forget to update `public/index.php`. *---------------------------------------------------------------
* CHECK PHP VERSION
*---------------------------------------------------------------
*/
$minPhpVersion = '8.1'; // If you update this, don't forget to update `public/index.php`.
if (version_compare(PHP_VERSION, $minPhpVersion, '<')) { if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
$message = sprintf( $message = sprintf(
'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s', 'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s',
@ -39,15 +47,14 @@ if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
} }
// We want errors to be shown when using it from the CLI. // We want errors to be shown when using it from the CLI.
error_reporting(-1); error_reporting(E_ALL);
ini_set('display_errors', '1'); ini_set('display_errors', '1');
/** /*
* @var bool *---------------------------------------------------------------
* * SET THE CURRENT DIRECTORY
* @deprecated No longer in use. `CodeIgniter` has `$context` property. *---------------------------------------------------------------
*/ */
define('SPARKED', true);
// Path to the front controller // Path to the front controller
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR); define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR);
@ -64,41 +71,14 @@ chdir(FCPATH);
* and fires up an environment-specific bootstrapping. * and fires up an environment-specific bootstrapping.
*/ */
// Load our paths config file // LOAD OUR PATHS CONFIG FILE
// This is the line that might need to be changed, depending on your folder structure. // This is the line that might need to be changed, depending on your folder structure.
require FCPATH . '../app/Config/Paths.php'; require FCPATH . '../app/Config/Paths.php';
// ^^^ Change this line if you move your application folder // ^^^ Change this line if you move your application folder
$paths = new Config\Paths(); $paths = new Config\Paths();
// Location of the framework bootstrap file. // LOAD THE FRAMEWORK BOOTSTRAP FILE
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php'; require $paths->systemDirectory . '/Boot.php';
// Load environment settings from .env files into $_SERVER and $_ENV exit(CodeIgniter\Boot::bootSpark($paths));
require_once SYSTEMPATH . 'Config/DotEnv.php';
(new CodeIgniter\Config\DotEnv(ROOTPATH))->load();
// Define ENVIRONMENT
if (! defined('ENVIRONMENT')) {
define('ENVIRONMENT', env('CI_ENVIRONMENT', 'production'));
}
// Grab our CodeIgniter
$app = Config\Services::codeigniter();
$app->initialize();
// Grab our Console
$console = new CodeIgniter\CLI\Console();
// Show basic information before we do anything else.
if (is_int($suppress = array_search('--no-header', $_SERVER['argv'], true))) {
unset($_SERVER['argv'][$suppress]); // @codeCoverageIgnore
$suppress = true;
}
$console->showHeader($suppress);
// fire off the command in the main framework.
$exit = $console->run();
exit(is_int($exit) ? $exit : EXIT_SUCCESS);

View File

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>