public static function start() { //美化url if (!empty($_SERVER['PATH_INFO'])) { $rewrite = explode("/", trim($_SERVER['PATH_INFO'], "/")); if (count($rewrite) >= 3) { self::$module = $rewrite[0]; self::$class = $rewrite[1]; self::$function = $rewrite[2]; } } isset($_GET['m']) ? self::$module = trim($_GET['m']) : self::$module; isset($_GET['c']) ? self::$class = trim($_GET['c']) : self::$class; isset($_GET['f']) ? self::$function = trim($_GET['f']) : self::$function; //扩展名分析 if (!empty(self::$function)) { if (strrpos(self::$function, '.htmlx') !== false) { self::$function = str_replace('.htmlx', '', self::$function); } } //内部php调用 if (isset($_SERVER['argv'][1])) { if ($_SERVER['argv'][1] == 'task') { Router::Controller("Task." . $_SERVER['argv'][2])->{$_SERVER}['argv'][3](); exit; } } //载入中间件 Router::getClass("\\AppMain\\middleware\\HttpMiddleware"); //载入路由 Router::router(); }
<?php include "./swoole_include.php"; $http = new swoole_http_server("0.0.0.0", 9501); $http->on('request', function ($request, $response) { if ($request->server['request_uri'] !== '/favicon.ico') { //设置参数 $req = new Request($request); //var_dump( $request ); //获取类.方法.参数 $rou = new Router($req); $class = $rou->getClass(); $method = $rou->getMethod(); $args = $rou->getArgs(); //按需加载类文件 $fileName = SWOOLE_MODEL_PATH . $class . '.class.php'; if (is_file($fileName)) { require_once $fileName; } else { Log::write($class . ' is not found', 'EMERG', 3, 'swoole'); $response->end('url is error, please check your url!'); } //调用回调函数,获取数据 $data = call_user_func_array(array($class, $method), $args); //返回处理信息 $res = new Response($data); $response->end($res->getData()); } }); $http->start();