diff --git a/src/Controller.php b/src/Controller.php index 9ca8df3..6184080 100644 --- a/src/Controller.php +++ b/src/Controller.php @@ -16,6 +16,7 @@ namespace DtApp\ThinkLibrary; +use stdClass; use think\App; use think\exception\HttpResponseException; use think\Request; @@ -25,7 +26,7 @@ use think\Request; * Class Controller * @package DtApp\ThinkLibrary */ -class Controller extends \stdClass +class Controller extends stdClass { /** * 应用容器 @@ -59,371 +60,8 @@ class Controller extends \stdClass { $this->app = $app; $this->request = $app->request; - $this->currentUrl = $this->request->request('s'); - $this->meuns = [ - [ - "title" => "后台管理", - "icon" => "mdi mdi-home", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "UI元素", - "icon" => "mdi mdi-palette", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "按钮", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "卡片", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "格栅", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "图标", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "表格", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "模态框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "提示 / 弹出框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "警告框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "分页", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "进度条", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "标签页", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "排版", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "步骤", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "其他", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "表单", - "icon" => "mdi mdi-format-align-justify", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "基本元素", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "单选框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "复选框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "开关", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "示例页面", - "icon" => "mdi mdi-format-align-justify", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "文档列表", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "图库列表", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "网址配置", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "设置权限", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "新增文档", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "表单向导", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "登录页面", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "错误页面", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "JS 插件", - "icon" => "mdi mdi-language-javascript", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "日期选择器", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "滑块", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "选色器", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "Chart.js", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "对话框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "标签插件", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "通知消息", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "多级菜单", - "icon" => "mdi mdi-menu", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "三级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "三级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/config/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ] - ]; $this->app->bind('DtApp\ThinkLibrary\Controller', $this); - if (in_array($this->request->action(), get_class_methods(__CLASS__))) { - $this->error('Access without permission.'); - } + if (in_array($this->request->action(), get_class_methods(__CLASS__))) $this->error('Access without permission.'); $this->initialize(); } @@ -432,367 +70,6 @@ class Controller extends \stdClass */ protected function initialize() { - $this->currentUrl = $this->request->request('s'); - $this->meuns = [ - [ - "title" => "后台管理", - "icon" => "mdi mdi-home", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "UI元素", - "icon" => "mdi mdi-palette", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "按钮", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "卡片", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "格栅", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "图标", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "表格", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "模态框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "提示 / 弹出框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "警告框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "分页", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "进度条", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "标签页", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "排版", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "步骤", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "其他", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "表单", - "icon" => "mdi mdi-format-align-justify", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "基本元素", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "单选框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "复选框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "开关", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "示例页面", - "icon" => "mdi mdi-format-align-justify", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "文档列表", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "图库列表", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "网址配置", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "设置权限", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "新增文档", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "表单向导", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "登录页面", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "错误页面", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "JS 插件", - "icon" => "mdi mdi-language-javascript", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "日期选择器", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "滑块", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "选色器", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "Chart.js", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "对话框", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "标签插件", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "通知消息", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "多级菜单", - "icon" => "mdi mdi-menu", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "#", - "params" => "", - "target" => "_self", - "sub" => [ - [ - "title" => "三级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ], - [ - "title" => "三级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ], - [ - "title" => "一级菜单", - "icon" => "layui-icon layui-icon-set", - "url" => "/admin/index.html", - "params" => "", - "target" => "_self", - "sub" => [] - ] - ] - ] - ]; } /** @@ -803,7 +80,7 @@ class Controller extends \stdClass */ public function error($info, $data = '{-null-}', $code = 0) { - if ($data === '{-null-}') $data = new \stdClass(); + if ($data === '{-null-}') $data = new stdClass(); throw new HttpResponseException(json([ 'code' => $code, 'info' => $info, 'data' => $data, ])); @@ -817,7 +94,7 @@ class Controller extends \stdClass */ public function success($info, $data = '{-null-}', $code = 1) { - if ($data === '{-null-}') $data = new \stdClass(); + if ($data === '{-null-}') $data = new stdClass(); throw new HttpResponseException(json([ 'code' => $code, 'info' => $info, 'data' => $data, ])); diff --git a/src/Service.php b/src/Service.php index 6e7ab04..8665933 100644 --- a/src/Service.php +++ b/src/Service.php @@ -58,6 +58,7 @@ abstract class Service */ public static function instance(...$args) { - return Container::getInstance()->make(static::class, $args); + return Container::getInstance() + ->make(static::class, $args); } } diff --git a/src/common.php b/src/common.php index 37d80c8..9fa83fb 100644 --- a/src/common.php +++ b/src/common.php @@ -25,7 +25,7 @@ use think\db\exception\ModelNotFoundException; /** * 定义当前版本 */ -const VERSION = '6.0.56'; +const VERSION = '6.0.67'; if (!function_exists('get_ip_info')) { diff --git a/src/facade/Arrays.php b/src/facade/Arrays.php index 47a64fe..c8205f4 100644 --- a/src/facade/Arrays.php +++ b/src/facade/Arrays.php @@ -27,9 +27,11 @@ use think\Facade; * @package think\facade * @mixin helper * - * @method helper rand(array $arr) mixed 数组随机返回一个下标 - * @method helper randValue(array $arr) mixed 数组随机返回一个值 - * @method helper split(array $data, $num = 5) array 分隔数组 + * @method helper rand(array $array) mixed 数组随机返回一个下标 + * @method helper randValue(array $array) mixed 数组随机返回一个值 + * @method helper split(array $array, $num = 5) array 分隔数组 + * @method helper unique(array $array) array 多维数组去重 + * @method helper sort(array $arrays, string $sort_key, $sort_order = SORT_ASC, $sort_type = SORT_NUMERIC) array 二维数组根据某个键排序 */ class Arrays extends Facade { diff --git a/src/helper/Arrays.php b/src/helper/Arrays.php index 41cb368..faebaa6 100644 --- a/src/helper/Arrays.php +++ b/src/helper/Arrays.php @@ -26,43 +26,77 @@ class Arrays { /** * 数组随机返回一个下标 - * @param $arr + * @param $array * @return mixed */ - public function rand(array $arr) + public function rand(array $array) { - return array_rand($arr); + return array_rand($array); } /** * 数组随机返回一个值 - * @param $arr + * @param $array * @return mixed */ - public function randValue(array $arr) + public function randValue(array $array) { - return $arr[array_rand($arr)]; + return $array[array_rand($array)]; } /** * 分隔数组 - * @param array $data 数组 + * @param array $array 数组 * @param int $num 数量 * @return array */ - public function split(array $data, $num = 5): array + public function split(array $array, $num = 5): array { $arrRet = array(); - if (!isset($data) || empty($data)) return $arrRet; - $iCount = count($data) / $num; + if (!isset($array) || empty($array)) return $arrRet; + $iCount = count($array) / $num; if (!is_int($iCount)) $iCount = ceil($iCount); else $iCount += 1; for ($i = 0; $i < $iCount; ++$i) { - $arrInfos = array_slice($data, $i * $num, $num); + $arrInfos = array_slice($array, $i * $num, $num); if (empty($arrInfos)) continue; $arrRet[] = $arrInfos; unset($arrInfos); } return $arrRet; } + + /** + * 多维数组去重 + * @param array $array + * @return array + */ + public function unique(array $array) + { + $out = array(); + foreach ($array as $key => $value) if (!in_array($value, $out)) $out[$key] = $value; + $out = array_values($out); + return $out; + } + + /** + * 二维数组根据某个键排序 + * @param array $arrays + * @param string $sort_key + * @param int $sort_order + * @param int $sort_type + * @return array + */ + public function sort(array $arrays, string $sort_key, $sort_order = SORT_ASC, $sort_type = SORT_NUMERIC) + { + $key_arrays = array(); + if (is_array($arrays)) { + foreach ($arrays as $array) { + if (is_array($array)) $key_arrays[] = $array[$sort_key]; + else return []; + } + } else return []; + array_multisort($key_arrays, $sort_order, $sort_type, $arrays); + return $arrays; + } }