mirror of
https://github.com/codeigniter4/CodeIgniter4.git
synced 2025-02-20 11:44:28 +08:00
91 lines
3.5 KiB
PHP
91 lines
3.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
use CodeIgniter\Boot;
|
|
use Config\Paths;
|
|
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', '1');
|
|
ini_set('display_startup_errors', '1');
|
|
|
|
/*
|
|
* ---------------------------------------------------------------
|
|
* DEFINE ENVIRONMENT
|
|
* ---------------------------------------------------------------
|
|
*/
|
|
|
|
// Make sure it recognizes that we're testing.
|
|
$_SERVER['CI_ENVIRONMENT'] = 'testing';
|
|
define('ENVIRONMENT', 'testing');
|
|
|
|
defined('CI_DEBUG') || define('CI_DEBUG', true);
|
|
|
|
/*
|
|
* ---------------------------------------------------------------
|
|
* SET UP OUR PATH CONSTANTS
|
|
* ---------------------------------------------------------------
|
|
*
|
|
* The path constants provide convenient access to the folders
|
|
* throughout the application. We have to set them up here
|
|
* so they are available in the config files that are loaded.
|
|
*/
|
|
|
|
// Often these constants are pre-defined, but query the current directory structure as a fallback
|
|
defined('HOMEPATH') || define('HOMEPATH', realpath(rtrim(getcwd(), '\\/ ')) . DIRECTORY_SEPARATOR);
|
|
$source = is_dir(HOMEPATH . 'app')
|
|
? HOMEPATH
|
|
: (is_dir('vendor/codeigniter4/framework/') ? 'vendor/codeigniter4/framework/' : 'vendor/codeigniter4/codeigniter4/');
|
|
defined('CONFIGPATH') || define('CONFIGPATH', realpath($source . 'app/Config') . DIRECTORY_SEPARATOR);
|
|
defined('PUBLICPATH') || define('PUBLICPATH', realpath($source . 'public') . DIRECTORY_SEPARATOR);
|
|
unset($source);
|
|
|
|
// LOAD OUR PATHS CONFIG FILE
|
|
// Load framework paths from their config file
|
|
require CONFIGPATH . 'Paths.php';
|
|
$paths = new Paths();
|
|
|
|
// Define necessary framework path constants
|
|
defined('APPPATH') || define('APPPATH', realpath(rtrim($paths->appDirectory, '\\/ ')) . DIRECTORY_SEPARATOR);
|
|
defined('ROOTPATH') || define('ROOTPATH', realpath(APPPATH . '../') . DIRECTORY_SEPARATOR);
|
|
defined('SYSTEMPATH') || define('SYSTEMPATH', realpath(rtrim($paths->systemDirectory, '\\/')) . DIRECTORY_SEPARATOR);
|
|
defined('WRITEPATH') || define('WRITEPATH', realpath(rtrim($paths->writableDirectory, '\\/ ')) . DIRECTORY_SEPARATOR);
|
|
defined('TESTPATH') || define('TESTPATH', realpath(HOMEPATH . 'tests/') . DIRECTORY_SEPARATOR);
|
|
|
|
defined('CIPATH') || define('CIPATH', realpath(SYSTEMPATH . '../') . DIRECTORY_SEPARATOR);
|
|
defined('FCPATH') || define('FCPATH', realpath(PUBLICPATH) . DIRECTORY_SEPARATOR);
|
|
|
|
defined('SUPPORTPATH') || define('SUPPORTPATH', realpath(TESTPATH . '_support/') . DIRECTORY_SEPARATOR);
|
|
defined('COMPOSER_PATH') || define('COMPOSER_PATH', (string) realpath(HOMEPATH . 'vendor/autoload.php'));
|
|
defined('VENDORPATH') || define('VENDORPATH', realpath(HOMEPATH . 'vendor') . DIRECTORY_SEPARATOR);
|
|
|
|
/*
|
|
*---------------------------------------------------------------
|
|
* 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 THE FRAMEWORK BOOTSTRAP FILE
|
|
require $paths->systemDirectory . '/Boot.php';
|
|
Boot::bootTest($paths);
|
|
|
|
/*
|
|
* ---------------------------------------------------------------
|
|
* LOAD ROUTES
|
|
* ---------------------------------------------------------------
|
|
*/
|
|
|
|
service('routes')->loadRoutes();
|