Browse Source

!460 fix: 优化 v1.x 对 php8 的兼容
Merge pull request !460 from F4nniu (FastAdmin开源框架)/php8_compatibily

F4nniu (FastAdmin开源框架) 1 year ago
parent
commit
787334972e

+ 2 - 2
application/admin/common.php

@@ -18,8 +18,8 @@ if (!function_exists('build_select')) {
      */
     function build_select($name, $options, $selected = [], $attr = [])
     {
-        $options = is_array($options) ? $options : explode(',', $options);
-        $selected = is_array($selected) ? $selected : explode(',', $selected);
+        $options = is_array($options) ? $options : explode(',', $options ?? '');
+        $selected = is_array($selected) ? $selected : explode(',', $selected ?? '');
         return Form::select($name, $options, $selected, $attr);
     }
 }

+ 2 - 3
application/admin/controller/Addon.php

@@ -319,9 +319,8 @@ class Addon extends Backend
     {
         $offset = (int)$this->request->get("offset");
         $limit = (int)$this->request->get("limit");
-        $filter = $this->request->get("filter");
-        $search = $this->request->get("search");
-        $search = htmlspecialchars(strip_tags($search));
+        $filter = $this->request->get("filter", '');
+        $search = $this->request->get("search", '', 'strip_tags,htmlspecialchars');
         $onlineaddons = $this->getAddonList();
         $filter = (array)json_decode($filter, true);
         $addons = get_addon_list();

+ 1 - 1
application/common.php

@@ -10,7 +10,7 @@ if (!function_exists('__')) {
     /**
      * 获取语言变量值
      * @param string $name 语言变量名
-     * @param array  $vars 动态变量值
+     * @param string | array  $vars 动态变量值
      * @param string $lang 语言
      * @return mixed
      */

+ 1 - 1
application/common/behavior/Common.php

@@ -63,7 +63,7 @@ class Common
         }
         // 切换多语言
         if (Config::get('lang_switch_on')) {
-            $lang = $request->get('lang');
+            $lang = $request->get('lang', '');
             if (preg_match("/^([a-zA-Z\-_]{2,10})\$/i", $lang)) {
                 \think\Cookie::set('think_var', $lang);
             }

+ 1 - 0
application/common/library/token/Driver.php

@@ -76,6 +76,7 @@ abstract class Driver
     protected function getEncryptedToken($token)
     {
         $config = \think\Config::get('token');
+        $token = $token ?? ''; // 为兼容 php8
         return hash_hmac($config['hashalgo'], $token, $config['key']);
     }
 

+ 1 - 0
application/common/library/token/driver/Redis.php

@@ -60,6 +60,7 @@ class Redis extends Driver
     protected function getEncryptedToken($token)
     {
         $config = \think\Config::get('token');
+        $token = $token ?? ''; // 为兼容 php8
         return $this->options['tokenprefix'] . hash_hmac($config['hashalgo'], $token, $config['key']);
     }
 

+ 5 - 2
composer.json

@@ -17,7 +17,7 @@
     "require": {
         "php": ">=7.2.0",
         "topthink/framework": "dev-master",
-        "topthink/think-captcha": "^1.0",
+        "topthink/think-captcha": "^1.0.9",
         "topthink/think-installer": "^1.0.14",
         "topthink/think-queue": "1.1.6",
         "topthink/think-helper": "^1.0.7",
@@ -25,7 +25,6 @@
         "overtrue/pinyin": "^3.0",
         "phpoffice/phpspreadsheet": "1.19",
         "overtrue/wechat": "^4.6",
-        "nelexa/zip": "^3.3",
         "ext-json": "*",
         "ext-curl": "*",
         "ext-pdo": "*",
@@ -39,6 +38,10 @@
         {
             "type": "git",
             "url": "https://gitee.com/fastadminnet/framework.git"
+        },
+        {
+            "type": "git",
+            "url": "https://gitee.com/fastadminnet/think-captcha.git"
         }
     ]
 }