1 | <?php |
---|
2 | /** |
---|
3 | * CodeIgniter |
---|
4 | * |
---|
5 | * An open source application development framework for PHP |
---|
6 | * |
---|
7 | * This content is released under the MIT License (MIT) |
---|
8 | * |
---|
9 | * Copyright (c) 2014 - 2016, British Columbia Institute of Technology |
---|
10 | * |
---|
11 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
---|
12 | * of this software and associated documentation files (the "Software"), to deal |
---|
13 | * in the Software without restriction, including without limitation the rights |
---|
14 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
---|
15 | * copies of the Software, and to permit persons to whom the Software is |
---|
16 | * furnished to do so, subject to the following conditions: |
---|
17 | * |
---|
18 | * The above copyright notice and this permission notice shall be included in |
---|
19 | * all copies or substantial portions of the Software. |
---|
20 | * |
---|
21 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
---|
22 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
---|
23 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
---|
24 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
---|
25 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
---|
26 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
---|
27 | * THE SOFTWARE. |
---|
28 | * |
---|
29 | * @package CodeIgniter |
---|
30 | * @author EllisLab Dev Team |
---|
31 | * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) |
---|
32 | * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) |
---|
33 | * @license http://opensource.org/licenses/MIT MIT License |
---|
34 | * @link https://codeigniter.com |
---|
35 | * @since Version 1.0.0 |
---|
36 | * @filesource |
---|
37 | */ |
---|
38 | |
---|
39 | /* |
---|
40 | *--------------------------------------------------------------- |
---|
41 | * APPLICATION ENVIRONMENT |
---|
42 | *--------------------------------------------------------------- |
---|
43 | * |
---|
44 | * You can load different configurations depending on your |
---|
45 | * current environment. Setting the environment also influences |
---|
46 | * things like logging and error reporting. |
---|
47 | * |
---|
48 | * This can be set to anything, but default usage is: |
---|
49 | * |
---|
50 | * development |
---|
51 | * testing |
---|
52 | * production |
---|
53 | * |
---|
54 | * NOTE: If you change these, also change the error_reporting() code below |
---|
55 | */ |
---|
56 | define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'production'); |
---|
57 | |
---|
58 | /* |
---|
59 | *--------------------------------------------------------------- |
---|
60 | * ERROR REPORTING |
---|
61 | *--------------------------------------------------------------- |
---|
62 | * |
---|
63 | * Different environments will require different levels of error reporting. |
---|
64 | * By default development will show errors but testing and live will hide them. |
---|
65 | */ |
---|
66 | switch (ENVIRONMENT) |
---|
67 | { |
---|
68 | case 'development': |
---|
69 | error_reporting(-1); |
---|
70 | ini_set('display_errors', 1); |
---|
71 | break; |
---|
72 | |
---|
73 | case 'testing': |
---|
74 | case 'production': |
---|
75 | ini_set('display_errors', 0); |
---|
76 | if (version_compare(PHP_VERSION, '5.3', '>=')) |
---|
77 | { |
---|
78 | error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); |
---|
79 | } |
---|
80 | else |
---|
81 | { |
---|
82 | error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE); |
---|
83 | } |
---|
84 | break; |
---|
85 | |
---|
86 | default: |
---|
87 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); |
---|
88 | echo 'The application environment is not set correctly.'; |
---|
89 | exit(1); // EXIT_ERROR |
---|
90 | } |
---|
91 | |
---|
92 | /* |
---|
93 | *--------------------------------------------------------------- |
---|
94 | * SYSTEM FOLDER NAME |
---|
95 | *--------------------------------------------------------------- |
---|
96 | * |
---|
97 | * This variable must contain the name of your "system" folder. |
---|
98 | * Include the path if the folder is not in the same directory |
---|
99 | * as this file. |
---|
100 | */ |
---|
101 | $system_path = 'system'; |
---|
102 | |
---|
103 | /* |
---|
104 | *--------------------------------------------------------------- |
---|
105 | * APPLICATION FOLDER NAME |
---|
106 | *--------------------------------------------------------------- |
---|
107 | * |
---|
108 | * If you want this front controller to use a different "application" |
---|
109 | * folder than the default one you can set its name here. The folder |
---|
110 | * can also be renamed or relocated anywhere on your server. If |
---|
111 | * you do, use a full server path. For more info please see the user guide: |
---|
112 | * https://codeigniter.com/user_guide/general/managing_apps.html |
---|
113 | * |
---|
114 | * NO TRAILING SLASH! |
---|
115 | */ |
---|
116 | $application_folder = 'application'; |
---|
117 | |
---|
118 | /* |
---|
119 | *--------------------------------------------------------------- |
---|
120 | * VIEW FOLDER NAME |
---|
121 | *--------------------------------------------------------------- |
---|
122 | * |
---|
123 | * If you want to move the view folder out of the application |
---|
124 | * folder set the path to the folder here. The folder can be renamed |
---|
125 | * and relocated anywhere on your server. If blank, it will default |
---|
126 | * to the standard location inside your application folder. If you |
---|
127 | * do move this, use the full server path to this folder. |
---|
128 | * |
---|
129 | * NO TRAILING SLASH! |
---|
130 | */ |
---|
131 | $view_folder = ''; |
---|
132 | |
---|
133 | |
---|
134 | /* |
---|
135 | * -------------------------------------------------------------------- |
---|
136 | * DEFAULT CONTROLLER |
---|
137 | * -------------------------------------------------------------------- |
---|
138 | * |
---|
139 | * Normally you will set your default controller in the routes.php file. |
---|
140 | * You can, however, force a custom routing by hard-coding a |
---|
141 | * specific controller class/function here. For most applications, you |
---|
142 | * WILL NOT set your routing here, but it's an option for those |
---|
143 | * special instances where you might want to override the standard |
---|
144 | * routing in a specific front controller that shares a common CI installation. |
---|
145 | * |
---|
146 | * IMPORTANT: If you set the routing here, NO OTHER controller will be |
---|
147 | * callable. In essence, this preference limits your application to ONE |
---|
148 | * specific controller. Leave the function name blank if you need |
---|
149 | * to call functions dynamically via the URI. |
---|
150 | * |
---|
151 | * Un-comment the $routing array below to use this feature |
---|
152 | */ |
---|
153 | // The directory name, relative to the "controllers" folder. Leave blank |
---|
154 | // if your controller is not in a sub-folder within the "controllers" folder |
---|
155 | // $routing['directory'] = ''; |
---|
156 | |
---|
157 | // The controller class file name. Example: mycontroller |
---|
158 | // $routing['controller'] = ''; |
---|
159 | |
---|
160 | // The controller function you wish to be called. |
---|
161 | // $routing['function'] = ''; |
---|
162 | |
---|
163 | |
---|
164 | /* |
---|
165 | * ------------------------------------------------------------------- |
---|
166 | * CUSTOM CONFIG VALUES |
---|
167 | * ------------------------------------------------------------------- |
---|
168 | * |
---|
169 | * The $assign_to_config array below will be passed dynamically to the |
---|
170 | * config class when initialized. This allows you to set custom config |
---|
171 | * items or override any default config values found in the config.php file. |
---|
172 | * This can be handy as it permits you to share one application between |
---|
173 | * multiple front controller files, with each file containing different |
---|
174 | * config values. |
---|
175 | * |
---|
176 | * Un-comment the $assign_to_config array below to use this feature |
---|
177 | */ |
---|
178 | // $assign_to_config['name_of_config_item'] = 'value of config item'; |
---|
179 | |
---|
180 | |
---|
181 | |
---|
182 | // -------------------------------------------------------------------- |
---|
183 | // END OF USER CONFIGURABLE SETTINGS. DO NOT EDIT BELOW THIS LINE |
---|
184 | // -------------------------------------------------------------------- |
---|
185 | |
---|
186 | /* |
---|
187 | * --------------------------------------------------------------- |
---|
188 | * Resolve the system path for increased reliability |
---|
189 | * --------------------------------------------------------------- |
---|
190 | */ |
---|
191 | |
---|
192 | // Set the current directory correctly for CLI requests |
---|
193 | if (defined('STDIN')) |
---|
194 | { |
---|
195 | chdir(dirname(__FILE__)); |
---|
196 | } |
---|
197 | |
---|
198 | if (($_temp = realpath($system_path)) !== FALSE) |
---|
199 | { |
---|
200 | $system_path = $_temp.'/'; |
---|
201 | } |
---|
202 | else |
---|
203 | { |
---|
204 | // Ensure there's a trailing slash |
---|
205 | $system_path = rtrim($system_path, '/').'/'; |
---|
206 | } |
---|
207 | |
---|
208 | // Is the system path correct? |
---|
209 | if ( ! is_dir($system_path)) |
---|
210 | { |
---|
211 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); |
---|
212 | echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: '.pathinfo(__FILE__, PATHINFO_BASENAME); |
---|
213 | exit(3); // EXIT_CONFIG |
---|
214 | } |
---|
215 | |
---|
216 | /* |
---|
217 | * ------------------------------------------------------------------- |
---|
218 | * Now that we know the path, set the main path constants |
---|
219 | * ------------------------------------------------------------------- |
---|
220 | */ |
---|
221 | // The name of THIS file |
---|
222 | define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); |
---|
223 | |
---|
224 | // Path to the system folder |
---|
225 | define('BASEPATH', str_replace('\\', '/', $system_path)); |
---|
226 | |
---|
227 | // Path to the front controller (this file) |
---|
228 | define('FCPATH', dirname(__FILE__).'/'); |
---|
229 | |
---|
230 | // Name of the "system folder" |
---|
231 | define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); |
---|
232 | |
---|
233 | // The path to the "application" folder |
---|
234 | if (is_dir($application_folder)) |
---|
235 | { |
---|
236 | if (($_temp = realpath($application_folder)) !== FALSE) |
---|
237 | { |
---|
238 | $application_folder = $_temp; |
---|
239 | } |
---|
240 | |
---|
241 | define('APPPATH', $application_folder.DIRECTORY_SEPARATOR); |
---|
242 | } |
---|
243 | else |
---|
244 | { |
---|
245 | if ( ! is_dir(BASEPATH.$application_folder.DIRECTORY_SEPARATOR)) |
---|
246 | { |
---|
247 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); |
---|
248 | echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF; |
---|
249 | exit(3); // EXIT_CONFIG |
---|
250 | } |
---|
251 | |
---|
252 | define('APPPATH', BASEPATH.$application_folder.DIRECTORY_SEPARATOR); |
---|
253 | } |
---|
254 | |
---|
255 | // The path to the "views" folder |
---|
256 | if ( ! is_dir($view_folder)) |
---|
257 | { |
---|
258 | if ( ! empty($view_folder) && is_dir(APPPATH.$view_folder.DIRECTORY_SEPARATOR)) |
---|
259 | { |
---|
260 | $view_folder = APPPATH.$view_folder; |
---|
261 | } |
---|
262 | elseif ( ! is_dir(APPPATH.'views'.DIRECTORY_SEPARATOR)) |
---|
263 | { |
---|
264 | header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); |
---|
265 | echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF; |
---|
266 | exit(3); // EXIT_CONFIG |
---|
267 | } |
---|
268 | else |
---|
269 | { |
---|
270 | $view_folder = APPPATH.'views'; |
---|
271 | } |
---|
272 | } |
---|
273 | |
---|
274 | if (($_temp = realpath($view_folder)) !== FALSE) |
---|
275 | { |
---|
276 | $view_folder = $_temp.DIRECTORY_SEPARATOR; |
---|
277 | } |
---|
278 | else |
---|
279 | { |
---|
280 | $view_folder = rtrim($view_folder, '/\\').DIRECTORY_SEPARATOR; |
---|
281 | } |
---|
282 | |
---|
283 | define('VIEWPATH', $view_folder); |
---|
284 | |
---|
285 | /* |
---|
286 | * -------------------------------------------------------------------- |
---|
287 | * LOAD THE BOOTSTRAP FILE |
---|
288 | * -------------------------------------------------------------------- |
---|
289 | * |
---|
290 | * And away we go... |
---|
291 | */ |
---|
292 | require FCPATH . 'vendor/autoload.php'; |
---|
293 | require_once BASEPATH.'core/CodeIgniter.php'; |
---|