Selaa lähdekoodia

Update:更新验证、错误信息、Loader、url的extension

朱金辉 2 vuotta sitten
vanhempi
commit
1f9051fe6a
5 muutettua tiedostoa jossa 31 lisäystä ja 11 poistoa
  1. 10 0
      src/Base/Request.php
  2. 3 1
      src/Cache/Loader.php
  3. 1 1
      src/Exceptions/Errors.php
  4. 13 3
      src/Library/Validate.php
  5. 4 6
      src/Request/Http.php

+ 10 - 0
src/Base/Request.php

@@ -634,6 +634,16 @@ abstract class Request
         return false;
     }
 
+    /**
+     * 获取uri的extension
+     *
+     * @return array|string|string[]
+     */
+    public function getExtension() {
+        $extension = pathinfo($this->uri, PATHINFO_EXTENSION);
+        return $extension?? "html";
+    }
+
     /**
      * 对于不存在的方法默认调用url中的方法
      */

+ 3 - 1
src/Cache/Loader.php

@@ -6,6 +6,8 @@
  */
 namespace Qii\Cache;
 
+use Qii\Autoloader\Psr4;
+
 class Loader
 {
     const VERSION = '1.2';
@@ -24,7 +26,7 @@ class Loader
      */
     public function initialization($policy)
     {
-        return \Qii\Autoloader\Psr4::getInstance()->loadClass('Qii\Cache\\' . ucwords($this->cache), $policy);
+        return Psr4::getInstance()->loadClass('Qii\Cache\\' . ucwords($this->cache), $policy);
     }
 
     /**

+ 1 - 1
src/Exceptions/Errors.php

@@ -53,7 +53,7 @@ class Errors extends \Exception
         if (\Qii::getInstance()->request == null) {
             \Qii::getInstance()->request = \Qii::getInstance()->getRequest();
         }
-        if (\Qii::getInstance()->request->isXmlHttpRequest()) {
+        if (\Qii::getInstance()->request->getExtension() == 'json') {
             $code = $e->getCode();
             if ($code == 0) $code = 1;
             echo json_encode(array('code' => $code, 'line' => $e->getFile() . ' line :' . $e->getLine(), 'msg' => strip_tags($e->getMessage())), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);

+ 13 - 3
src/Library/Validate.php

@@ -47,6 +47,16 @@ namespace Qii\Library;
  * $validate = new \Qii\Library\Validate();
  * $validate->verify($data, $rules, $msg);
  */
+
+if(function_exists('mb_strlen')) {
+    function ValidateLength($str) {
+        return mb_strlen($str);
+    }
+}else{
+    function ValidateLength($str) {
+        return strlen($str);
+    }
+}
 class Validate
 {
 	const VERSION = '1.2';
@@ -399,7 +409,7 @@ class Validate
 	 */
 	public function maxlength($str, $len)
 	{
-		return strlen($str) <= $len;
+		return ValidateLength($str) <= $len;
 	}
 
 	/**
@@ -411,7 +421,7 @@ class Validate
 	 */
 	public function minlength($str, $len)
 	{
-		return strlen($str) >= $len;
+		return ValidateLength($str) >= $len;
 	}
 
 	/**
@@ -423,7 +433,7 @@ class Validate
 	 */
 	public function length($str, $len)
 	{
-		return strlen($str) == $len;
+		return ValidateLength($str) == $len;
 	}
 
 	/**

+ 4 - 6
src/Request/Http.php

@@ -5,7 +5,6 @@ use \Qii\Base\Request;
 
 final class Http extends Request
 {
-
     /**
      * __construct
      *
@@ -45,17 +44,16 @@ final class Http extends Request
                 if ($requestURI = $this->getServer('PATH_INFO')) {
                     break;
                 }
-
                 if ($requestURI = $this->getServer('REQUEST_URI')) {
                     /* Http proxy reqs setup request uri with scheme and host [and port] + the url path, only use url path */
                     if (strstr($requestURI, 'http') == $requestURI) {
-                        $url_info = parse_url($requestURI);
-                        if ($url_info && isset($url_info['path'])) {
-                            $requestURI = $url_info['path'];
+                        $urlInfo = parse_url($requestURI);
+                        if ($urlInfo && isset($urlInfo['path'])) {
+                            $requestURI = $urlInfo['path'];
                         }
                     } else {
                         if ($pos = strstr($requestURI, '?')) {
-                            $requestURI = substr($requestURI, 0, strlen($pos) - 1);
+                            $requestURI = substr($requestURI, 0, -1 * strlen($pos));
                         }
                     }
                     break;