예제 #1
0
 /**
  * 应用关闭处理
  * @return void
  */
 public static function appShutdown()
 {
     // 记录日志
     Log::save();
     if (SLOG_ON) {
         Slog::sendLog();
     }
     if ($e = error_get_last()) {
         switch ($e['type']) {
             case E_ERROR:
             case E_PARSE:
             case E_CORE_ERROR:
             case E_COMPILE_ERROR:
             case E_USER_ERROR:
                 ob_end_clean();
                 self::halt($e);
                 break;
         }
     }
 }
예제 #2
0
파일: app.php 프로젝트: cnBruceHong/think
 /**
  * 执行应用程序
  * @access public
  * @return void
  */
 public static function run(array $config = [])
 {
     // 初始化公共模块
     self::initModule(COMMON_MODULE, $config);
     // 读取扩展配置文件
     if ($config['extra_config_list']) {
         foreach ($config['extra_config_list'] as $file) {
             Config::load($file, $file);
         }
     }
     // 获取配置参数
     $config = Config::get();
     // 日志初始化
     Log::init($config['log']);
     // 缓存初始化
     Cache::connect($config['cache']);
     // 如果启动SocketLog调试, 进行SocketLog配置
     if (SLOG_ON) {
         Slog::config($config['slog']);
     }
     // 设置系统时区
     date_default_timezone_set($config['default_timezone']);
     // 默认语言
     $lang = strtolower($config['default_lang']);
     Lang::range($lang);
     // 加载默认语言包
     Lang::load(THINK_PATH . 'Lang/' . $lang . EXT);
     // 监听app_init
     APP_HOOK && Hook::listen('app_init');
     // 启动session API CLI 不开启
     if (!IS_CLI && !IS_API && $config['use_session']) {
         Session::init($config['session']);
     }
     // 应用URL调度
     self::dispatch($config);
     // 监听app_run
     APP_HOOK && Hook::listen('app_run');
     // 执行操作
     if (!preg_match('/^[A-Za-z](\\/|\\.|\\w)*$/', CONTROLLER_NAME)) {
         // 安全检测
         throw new Exception('illegal controller name:' . CONTROLLER_NAME, 10000);
     }
     if (Config::get('action_bind_class')) {
         $class = self::bindActionClass(Config::get('empty_controller'));
         $instance = new $class();
         // 操作绑定到类后 固定执行run入口
         $action = 'run';
     } else {
         $instance = Loader::controller(CONTROLLER_NAME, '', Config::get('empty_controller'));
         // 获取当前操作名
         $action = ACTION_NAME . Config::get('action_suffix');
     }
     if (!$instance) {
         throw new Exception('class [ ' . MODULE_NAME . '\\' . CONTROLLER_LAYER . '\\' . Loader::parseName(str_replace('.', '\\', CONTROLLER_NAME), 1) . ' ] not exists', 10001);
     }
     try {
         // 操作方法开始监听
         $call = [$instance, $action];
         APP_HOOK && Hook::listen('action_begin', $call);
         if (!preg_match('/^[A-Za-z](\\w)*$/', $action)) {
             // 非法操作
             throw new \ReflectionException();
         }
         //执行当前操作
         $method = new \ReflectionMethod($instance, $action);
         if ($method->isPublic()) {
             // URL参数绑定检测
             if (Config::get('url_params_bind') && $method->getNumberOfParameters() > 0) {
                 // 获取绑定参数
                 $args = self::getBindParams($method, Config::get('url_parmas_bind_type'));
                 // 全局过滤
                 array_walk_recursive($args, 'think\\Input::filterExp');
                 $data = $method->invokeArgs($instance, $args);
             } else {
                 $data = $method->invoke($instance);
             }
             // 操作方法执行完成监听
             APP_HOOK && Hook::listen('action_end', $data);
             // 返回数据
             Response::returnData($data, Config::get('default_return_type'), Config::get('response_exit'));
         } else {
             // 操作方法不是Public 抛出异常
             throw new \ReflectionException();
         }
     } catch (\ReflectionException $e) {
         // 操作不存在
         if (method_exists($instance, '_empty')) {
             $method = new \ReflectionMethod($instance, '_empty');
             $data = $method->invokeArgs($instance, [$action, '']);
             // 返回数据
             Response::returnData($data, Config::get('default_return_type'), Config::get('response_exit'));
         } else {
             throw new Exception('method [ ' . (new \ReflectionClass($instance))->getName() . '->' . $action . ' ] not exists ', 10002);
         }
     }
 }
예제 #3
0
<?php

include '../config.php';
include '../model/SLog.php';
//SLog::renderSearchLog($_REQUEST);
if (isset($_REQUEST['action']) && $_REQUEST['action'] == "filter" && $_REQUEST['date1'] != "" && $_REQUEST['date2'] != "") {
    $data = SLog::renderSearchLogD3($_REQUEST, true);
} else {
    $data = SLog::renderSearchLogD3($_REQUEST, false);
}
//print_r($data);
$slogToD3 = json_encode($data['slogDataD3']);
//$slogData = json_encode($data['slogData']);
//SLog::updateGeoData();
$exploreStats = json_encode(Slog::collectExploreStats());
?>

<!DOCTYPE html>
<meta charset="utf-8">
<head>
	
	<link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
	<script src="//code.jquery.com/jquery-1.10.2.js"></script>
	<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
	<script>

		var date1= "<?php 
echo $data['date1'];
?>
";
		var date2= "<?php