## 公共助手函數
> ThinkPHP6.0安裝時默認會在app目錄下創建公共助手函數文件`common.php`,公共方法在該文件中創建后即可全局使用。
## 創建請求返回消息提示公共方法
1. 請求成功返回消息提示:
~~~
if (!function_exists('success')) {
/**
* 請求成功返回
* @param array $data
* @param string $msg
* @param int $code
* @return \think\response\Json
*/
function success($data = [], $msg = '', $code = 20000)
{
$result['code'] = $code; // 狀態碼
$result['msg'] = $msg; // 提示信息
$result['time'] = time(); // 請求返回時間
$result['data'] = $data; // 請求返回數據
return json($result);
}
}
~~~
> 默認與`vue-element-admin`請求成功狀態碼20000保持一致。
2. 請求失敗返回消息提示:
~~~
if (!function_exists('error')) {
/**
* 請求失敗返回
* @param string $msg
* @param int $code
* @return \think\response\Json
*/
function error($msg = '', $code = 50000)
{
$result['code'] = $code;
$result['msg'] = $msg;
$result['time'] = time();
return json($result);
}
}
~~~
> 默認請求失敗時不返回數據,狀態碼為50000。
3. 樹形結構公共方法
~~~
if (!function_exists('tree')) {
/**
* 以pid——id對應,生成樹形結構
* @param array $array
* @return array|bool
*/
function tree($array)
{
$tree = []; // 生成樹形結構
$newArray = []; // 中轉數組,將傳入的數組轉換
if (is_array($array) && !empty($array)) {
foreach ($array as $item) {
$newArray[$item['id']] = $item; // 以傳入數組的id為主鍵,生成新的數組
}
foreach ($newArray as $k => $val) {
if ($val['pid'] > 0) { // 默認pid = 0時為一級
$newArray[$val['pid']]['children'][] = &$newArray[$k]; // 將pid與主鍵id相等的元素放入children中
} else {
$tree[] = &$newArray[$val['id']]; // 生成樹形結構
}
}
return $tree;
} else {
return false;
}
}
}
~~~
> 以id-pid對應生成樹形結構
4. 隨機密碼鹽(默認6個字符)
~~~
if (!function_exists('alnum')) {
/**
* 隨機生成數字+字母組合隨機字符串密碼鹽(包含大小寫字母)
* @param int $len 生成隨機字符串的長度,默認6個字符
* @return false|string
*/
function alnum($len = 6)
{
$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
return substr(str_shuffle(str_repeat($pool, ceil($len / strlen($pool)))), 0, $len);
}
}
~~~
> 管理員登錄密碼以md5 + 隨機密碼鹽方式進行加密