Example #1
0
 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();
 }
Example #2
0
<?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();