dever 5 years ago
parent
commit
ff88427371

+ 0 - 5
README.md

@@ -4,11 +4,6 @@ dever是一个php框架,与众不同。
 
 你只需要开发你的业务,写好你的业务逻辑即可,你可以专心研究你的算法、你的架构。你甚至可以把你的业务打包,上传给dever,共享给其他dever开发者。
 
-
-文档手册在此:https://www.kancloud.cn/rabin/dever-c/254006
-
-这个手册是为condenast写的,但完全可以独立使用。后续会整理一份出来的。
-
 新版本将使用dm工具进行安装:
 <pre>
 dm use dever //使用dever工具包

+ 7 - 1
vendor/dever-main/framework/src/Dever/Http/Url.php

@@ -37,6 +37,8 @@ class Url
         $host = '';
         self::host($host, $value, $project);
 
+        $value = Uri::LOAD . '=' . $value;
+        
         $key = $value;
 
         if (isset(self::$config['url']) && isset(self::$config['url'][$key])) {
@@ -230,7 +232,7 @@ class Url
                 $result = self::callback($value, $str, $route);
 
                 if (!$result || $result == $value) {
-                    $value = $value . '?' . $arg[1];
+                    $value = $value . '&' . $arg[1];
                 } else {
                     $value = $result;
                 }
@@ -240,6 +242,8 @@ class Url
                     $value = preg_replace('/&/', '?', $value, 1);
                 }
             }
+        } elseif (strpos($value, '?')) {
+            $value = str_replace('?', '&', $value);
         }
     }
 
@@ -247,6 +251,8 @@ class Url
     {
         $result = '';
 
+        $value = str_replace(Uri::LOAD . '=', '', $value);
+
         if ($key = array_search($value . '?' . $str, $route)) {
             $result = preg_replace_callback('/\(.*?\)/', 'self::getLink', $key);
         }

+ 33 - 3
vendor/dever-main/framework/src/Dever/Routing/Uri.php

@@ -11,6 +11,13 @@ class Uri
      */
     const EXPLODE = '/';
 
+    /**
+     * load
+     *
+     * @var string
+     */
+    const LOAD = 'l';
+
     /**
      * uri value
      *
@@ -84,7 +91,7 @@ class Uri
     {
         self::$method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET';
 
-        if (isset($_SERVER['DEVER_URITYPE'])) {
+        if (isset($_SERVER['DEVER_URITYPE']) && $_SERVER['DEVER_URITYPE']) {
             self::$type = $_SERVER['DEVER_URITYPE'];
         }
     }
@@ -123,6 +130,21 @@ class Uri
      * @return mixed
      */
     private static function request()
+    {
+        $request = $_REQUEST;
+        if (isset($request['l'])) {
+            self::$url = self::$value = $request['l'];
+        } else {
+            self::request_uri();
+        }
+    }
+
+    /**
+     * request_uri
+     *
+     * @return mixed
+     */
+    private static function request_uri()
     {
         if (!isset($_SERVER['PATH_INFO']) && isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] && $_SERVER['REQUEST_URI'] != '/') {
             $entry = defined('DEVER_ENTRY') ? DEVER_ENTRY : 'index.php';
@@ -170,6 +192,8 @@ class Uri
             } else {
                 self::grep();
             }
+
+            self::$value = str_replace(self::LOAD . '=', '', self::$value);
         }
     }
 
@@ -188,7 +212,7 @@ class Uri
                     $v = preg_replace('#^' . $k . '$#', $v, self::$value);
                 }
 
-                self::$value = $v;
+                self::$value = self::LOAD . '=' . $v;
 
                 self::$url = self::$value;
             }
@@ -203,10 +227,16 @@ class Uri
      */
     private static function input()
     {
-        if (strpos(self::$value, '?') !== false) {
+        if (strpos(self::$value, '&') !== false) {
+            parse_str(self::$value, $input);
+            self::$value = $input[self::LOAD];
+        } elseif (strpos(self::$value, '?') !== false) {
             $temp = explode('?', self::$value);
             self::$value = $temp[0];
             parse_str($temp[1], $input);
+        }
+
+        if (isset($input)) {
             Input::set('all', $input);
             self::setServer($input);
         }