public static function init() { global $_F; self::checkVersion(); self::initEnv(); self::safe(); $_F['config'] = array(); !defined("F_RUN_MODE") && define('F_RUN_MODE', 'web'); !defined('FLIB_ROOT') && define('FLIB_ROOT', dirname(__FILE__) . '/'); if (!defined('F_APP_ROOT')) { if (isset($_SERVER['DOCUMENT_ROOT'])) { define('F_APP_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/'); } elseif (isset($_SERVER['TERM']) && isset($_SERVER['PWD'])) { // run in shell define('F_APP_ROOT', $_SERVER['PWD'] . '/'); } else { define('F_APP_ROOT', getcwd() . '/'); } } else { //exit('please define F_APP_ROOT'); } !defined('WEB_ROOT_DIR') && define('WEB_ROOT_DIR', F_APP_ROOT); $_F['user_agent'] = $_SERVER['HTTP_USER_AGENT']; $_F['query_string'] = $_SERVER['QUERY_STRING']; !isset($_F['http_host']) && ($_F['http_host'] = $_SERVER['HTTP_HOST']); $last_part = substr($_F['http_host'], strrpos($_F['http_host'], '.')); if ($last_part == '.local') { $_F['dev_mode'] = true; } elseif ($last_part == '.lan') { $_F['test_mode'] = true; } // 注册AUTOLOAD方法,设定错误和异常处理 spl_autoload_register(array('Flib', 'autoLoad')); register_shutdown_function(array('Flib', 'fatalError')); restore_error_handler(); set_error_handler(array('Flib', 'appError')); restore_exception_handler(); set_exception_handler(array('Flib', 'appException')); $left_part = str_replace($last_part, '', $_F['http_host']); if ($left_part) { $_F['cookie_domain'] = substr($left_part, strrpos($left_part, '.')) . $last_part; } $_F['domain'] = trim($_F['cookie_domain'], '.'); $_F['subdomain'] = str_replace($_F['cookie_domain'], '', $_F['http_host']); FDispatcher::getURI(); $_F['refer'] = $_REQUEST['refer'] ? $_REQUEST['refer'] : $_SERVER['HTTP_REFERER']; $_F['in_ajax'] = $_REQUEST['in_ajax'] || $_GET['in_ajax'] || $_POST['in_ajax'] ? true : false; if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { $_F['in_ajax'] = true; } $_F['is_post'] = $_POST ? true : false; $_F['run_in'] = isset($_SERVER['HTTP_HOST']) ? 'web' : 'shell'; define('IS_POST', $_F['is_post']); !$_F['debug'] && ($_F['debug'] = FConfig::get("global.debug")); if (FConfig::get('global.f_compress')) { if (!file_exists(F_APP_ROOT . "data/_flib_min.php")) { self::createFlibMin(); } @(include_once F_APP_ROOT . "data/_flib_min.php"); } $sub_domain_status = FConfig::get('global.sub_domain.status'); // 是否开了子域名 if ($sub_domain_status) { $default_module = 'www'; foreach (FConfig::get('global.sub_domain.sub_domain_rewrite') as $key => $value) { if ($key == $_F['subdomain']) { $_F['module'] = $value; } if ($key == '*') { $default_module = $value; } } if (!$_F['module']) { $_F['module'] = $default_module; } } if (!$_F['uri']) { FDispatcher::init(); } }