|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* Part of Cli for CodeIgniter |
|
4
|
|
|
* |
|
5
|
|
|
* @author Kenji Suzuki <https://github.com/kenjis> |
|
6
|
|
|
* @license MIT License |
|
7
|
|
|
* @copyright 2015 Kenji Suzuki |
|
8
|
|
|
* @link https://github.com/kenjis/codeigniter-cli |
|
9
|
|
|
* |
|
10
|
|
|
* Based on http://codeinphp.github.io/post/codeigniter-tip-accessing-codeigniter-instance-outside/ |
|
11
|
|
|
* Thanks! |
|
12
|
|
|
*/ |
|
13
|
|
|
|
|
14
|
|
|
$cwd = getcwd(); |
|
15
|
|
|
chdir(__DIR__); |
|
16
|
|
|
|
|
17
|
|
|
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development'); |
|
18
|
|
|
|
|
19
|
|
|
$system_path = 'vendor/codeigniter/framework/system'; |
|
20
|
|
|
$application_folder = 'application'; |
|
21
|
|
|
$doc_root = 'public'; |
|
22
|
|
|
|
|
23
|
|
|
if (realpath($system_path) !== false) { |
|
24
|
|
|
$system_path = realpath($system_path) . '/'; |
|
25
|
|
|
} |
|
26
|
|
|
$system_path = rtrim($system_path, '/') . '/'; |
|
27
|
|
|
|
|
28
|
|
|
define('BASEPATH', str_replace("\\", "/", $system_path)); |
|
29
|
|
|
define('FCPATH', $doc_root . '/'); |
|
30
|
|
|
define('APPPATH', $application_folder . '/'); |
|
31
|
|
|
define('VIEWPATH', $application_folder . '/views/'); |
|
32
|
|
|
|
|
33
|
|
|
require(BASEPATH . 'core/Common.php'); |
|
34
|
|
|
|
|
35
|
|
|
if (file_exists(APPPATH . 'config/' . ENVIRONMENT . '/constants.php')) { |
|
36
|
|
|
require(APPPATH . 'config/' . ENVIRONMENT . '/constants.php'); |
|
37
|
|
|
} else { |
|
38
|
|
|
require(APPPATH . 'config/constants.php'); |
|
39
|
|
|
} |
|
40
|
|
|
|
|
41
|
|
|
$charset = strtoupper(config_item('charset')); |
|
42
|
|
|
ini_set('default_charset', $charset); |
|
43
|
|
|
|
|
44
|
|
|
if (extension_loaded('mbstring')) { |
|
45
|
|
|
define('MB_ENABLED', TRUE); |
|
46
|
|
|
// mbstring.internal_encoding is deprecated starting with PHP 5.6 |
|
47
|
|
|
// and it's usage triggers E_DEPRECATED messages. |
|
48
|
|
|
@ini_set('mbstring.internal_encoding', $charset); |
|
|
|
|
|
|
49
|
|
|
// This is required for mb_convert_encoding() to strip invalid characters. |
|
50
|
|
|
// That's utilized by CI_Utf8, but it's also done for consistency with iconv. |
|
51
|
|
|
mb_substitute_character('none'); |
|
52
|
|
|
} else { |
|
53
|
|
|
define('MB_ENABLED', FALSE); |
|
54
|
|
|
} |
|
55
|
|
|
|
|
56
|
|
|
// There's an ICONV_IMPL constant, but the PHP manual says that using |
|
57
|
|
|
// iconv's predefined constants is "strongly discouraged". |
|
58
|
|
|
if (extension_loaded('iconv')) { |
|
59
|
|
|
define('ICONV_ENABLED', TRUE); |
|
60
|
|
|
// iconv.internal_encoding is deprecated starting with PHP 5.6 |
|
61
|
|
|
// and it's usage triggers E_DEPRECATED messages. |
|
62
|
|
|
@ini_set('iconv.internal_encoding', $charset); |
|
|
|
|
|
|
63
|
|
|
} else { |
|
64
|
|
|
define('ICONV_ENABLED', FALSE); |
|
65
|
|
|
} |
|
66
|
|
|
|
|
67
|
|
|
$GLOBALS['CFG'] = & load_class('Config', 'core'); |
|
68
|
|
|
$GLOBALS['UNI'] = & load_class('Utf8', 'core'); |
|
69
|
|
|
$GLOBALS['SEC'] = & load_class('Security', 'core'); |
|
70
|
|
|
|
|
71
|
|
|
load_class('Loader', 'core'); |
|
72
|
|
|
load_class('Router', 'core'); |
|
73
|
|
|
load_class('Input', 'core'); |
|
74
|
|
|
load_class('Lang', 'core'); |
|
75
|
|
|
|
|
76
|
|
|
require(BASEPATH . 'core/Controller.php'); |
|
77
|
|
|
|
|
78
|
|
|
function &get_instance() |
|
79
|
|
|
{ |
|
80
|
|
|
return CI_Controller::get_instance(); |
|
81
|
|
|
} |
|
82
|
|
|
|
|
83
|
|
|
chdir($cwd); |
|
84
|
|
|
|
|
85
|
|
|
return new CI_Controller(); |
|
86
|
|
|
|
If you suppress an error, we recommend checking for the error condition explicitly: