Initial
This commit is contained in:
106
system/Test/bootstrap.php
Normal file
106
system/Test/bootstrap.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?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.
|
||||
*/
|
||||
|
||||
use CodeIgniter\Config\DotEnv;
|
||||
use CodeIgniter\Router\RouteCollection;
|
||||
use CodeIgniter\Services;
|
||||
use Config\Autoload;
|
||||
use Config\Modules;
|
||||
use Config\Paths;
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', '1');
|
||||
ini_set('display_startup_errors', '1');
|
||||
|
||||
// Make sure it recognizes that we're testing.
|
||||
$_SERVER['CI_ENVIRONMENT'] = 'testing';
|
||||
define('ENVIRONMENT', 'testing');
|
||||
defined('CI_DEBUG') || define('CI_DEBUG', true);
|
||||
|
||||
// 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 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('WRITEPATH') || define('WRITEPATH', realpath(rtrim($paths->writableDirectory, '\\/ ')) . DIRECTORY_SEPARATOR);
|
||||
defined('SYSTEMPATH') || define('SYSTEMPATH', realpath(rtrim($paths->systemDirectory, '\\/')) . DIRECTORY_SEPARATOR);
|
||||
defined('ROOTPATH') || define('ROOTPATH', realpath(APPPATH . '../') . DIRECTORY_SEPARATOR);
|
||||
defined('CIPATH') || define('CIPATH', realpath(SYSTEMPATH . '../') . DIRECTORY_SEPARATOR);
|
||||
defined('FCPATH') || define('FCPATH', realpath(PUBLICPATH) . DIRECTORY_SEPARATOR);
|
||||
defined('TESTPATH') || define('TESTPATH', realpath(HOMEPATH . 'tests/') . DIRECTORY_SEPARATOR);
|
||||
defined('SUPPORTPATH') || define('SUPPORTPATH', realpath(TESTPATH . '_support/') . DIRECTORY_SEPARATOR);
|
||||
defined('COMPOSER_PATH') || define('COMPOSER_PATH', realpath(HOMEPATH . 'vendor/autoload.php'));
|
||||
defined('VENDORPATH') || define('VENDORPATH', realpath(HOMEPATH . 'vendor') . DIRECTORY_SEPARATOR);
|
||||
|
||||
// Load Common.php from App then System
|
||||
if (file_exists(APPPATH . 'Common.php')) {
|
||||
require_once APPPATH . 'Common.php';
|
||||
}
|
||||
|
||||
require_once SYSTEMPATH . 'Common.php';
|
||||
|
||||
// Set environment values that would otherwise stop the framework from functioning during tests.
|
||||
if (! isset($_SERVER['app.baseURL'])) {
|
||||
$_SERVER['app.baseURL'] = 'http://example.com/';
|
||||
}
|
||||
|
||||
// Load necessary components
|
||||
require_once SYSTEMPATH . 'Config/AutoloadConfig.php';
|
||||
require_once APPPATH . 'Config/Autoload.php';
|
||||
require_once APPPATH . 'Config/Constants.php';
|
||||
require_once SYSTEMPATH . 'Modules/Modules.php';
|
||||
require_once APPPATH . 'Config/Modules.php';
|
||||
|
||||
require_once SYSTEMPATH . 'Autoloader/Autoloader.php';
|
||||
require_once SYSTEMPATH . 'Config/BaseService.php';
|
||||
require_once SYSTEMPATH . 'Config/Services.php';
|
||||
require_once APPPATH . 'Config/Services.php';
|
||||
|
||||
// Use Config\Services as CodeIgniter\Services
|
||||
if (! class_exists('CodeIgniter\Services', false)) {
|
||||
class_alias('Config\Services', 'CodeIgniter\Services');
|
||||
}
|
||||
|
||||
// Initialize and register the loader with the SPL autoloader stack.
|
||||
Services::autoloader()->initialize(new Autoload(), new Modules())->register();
|
||||
|
||||
// Now load Composer's if it's available
|
||||
if (is_file(COMPOSER_PATH)) {
|
||||
require_once COMPOSER_PATH;
|
||||
}
|
||||
|
||||
// Load environment settings from .env files into $_SERVER and $_ENV
|
||||
require_once SYSTEMPATH . 'Config/DotEnv.php';
|
||||
|
||||
$env = new DotEnv(ROOTPATH);
|
||||
$env->load();
|
||||
|
||||
// Always load the URL helper, it should be used in most of apps.
|
||||
helper('url');
|
||||
|
||||
require_once APPPATH . 'Config/Routes.php';
|
||||
|
||||
/**
|
||||
* @var RouteCollection $routes
|
||||
*/
|
||||
$routes->getRoutes('*');
|
||||
Reference in New Issue
Block a user