Exemple #1
0
 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();
     }
 }