初始化项目
This commit is contained in:
195
bootstrap/helpers.php
Normal file
195
bootstrap/helpers.php
Normal file
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
|
||||
if (!function_exists('is_wechat')) {
|
||||
/**
|
||||
* 判断是否是微信访问.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function is_wechat(): bool
|
||||
{
|
||||
return str_contains(\Jenssegers\Agent\Facades\Agent::getUserAgent(), 'MicroMessenger');
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('is_mobile')) {
|
||||
/**
|
||||
* 是否手机
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function is_mobile(): bool
|
||||
{
|
||||
$agent = new Jenssegers\Agent\Agent();
|
||||
|
||||
return $agent->isMobile();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('json_success')) {
|
||||
/**
|
||||
* 成功
|
||||
*
|
||||
* @param mixed $message
|
||||
* @param mixed $data
|
||||
* @return void
|
||||
*/
|
||||
function json_success(mixed $message = '', mixed $data = []): void
|
||||
{
|
||||
if (is_string($message)) {
|
||||
$result = [
|
||||
'msg' => $message,
|
||||
'data' => $data,
|
||||
];
|
||||
} else {
|
||||
$result = [
|
||||
'msg' => '',
|
||||
'data' => $message,
|
||||
];
|
||||
}
|
||||
$result['code'] = 0;
|
||||
response()->json($result)->throwResponse();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('json_page')) {
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param $data
|
||||
* @param mixed $pageData
|
||||
* @param mixed $message
|
||||
* @return void
|
||||
*/
|
||||
function json_page($data, mixed $pageData = [], mixed $message = ''): void
|
||||
{
|
||||
$pageData['total'] = method_exists($data, 'total') ? $data->total() : null;
|
||||
$pageData['count'] = $data->count();
|
||||
$pageData['page'] = $data->currentPage();
|
||||
$pageData['per_page'] = $data->perPage();
|
||||
$pageData['last'] = method_exists($data, 'lastPage') ? $data->lastPage() : null;
|
||||
json_success($message, [
|
||||
'page_info' => $pageData,
|
||||
'page_data' => $data->toArray()['data'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('json_error')) {
|
||||
/**
|
||||
* 失败
|
||||
*
|
||||
* @param mixed $message
|
||||
* @param mixed $data
|
||||
* @param int $code
|
||||
* @return void
|
||||
*/
|
||||
function json_error(mixed $message = '', mixed $data = [], int $code = 1): void
|
||||
{
|
||||
$result = [
|
||||
'code' => $code,
|
||||
'msg' => $message,
|
||||
'data' => $data,
|
||||
];
|
||||
response()->json($result)->throwResponse();
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('json_guest')) {
|
||||
/**
|
||||
* 失败 - 未登录
|
||||
*
|
||||
* @param mixed $message
|
||||
* @param int $code
|
||||
* @return void
|
||||
*/
|
||||
function json_guest(mixed $message = '未登录,请先登录', int $code = 99): void
|
||||
{
|
||||
json_error($message, [], $code);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('json_result')) {
|
||||
/**
|
||||
* 结果
|
||||
*
|
||||
* @param mixed $message
|
||||
* @param mixed $data
|
||||
* @param int $code
|
||||
* @return array
|
||||
*/
|
||||
function json_result(mixed $message = '', mixed $data = [], int $code = 0): array
|
||||
{
|
||||
return [
|
||||
'code' => $code,
|
||||
'msg' => $message,
|
||||
'data' => $data,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('url_to_uri')) {
|
||||
/**
|
||||
* 网址去除域名段 获取 url
|
||||
*
|
||||
* @param $url
|
||||
* @return string|null
|
||||
*/
|
||||
function url_to_uri($url): ?string
|
||||
{
|
||||
if (!$url) {
|
||||
return null;
|
||||
}
|
||||
$arr = parse_url($url);
|
||||
if (isset($arr['scheme']) && isset($arr['host'])) {
|
||||
$domains = [config('filesystems.disks.' . config('filesystems.default') . '.domain')];
|
||||
$domain = $arr['scheme'] . '://' . $arr['host'];
|
||||
if (in_array($domain, $domains)) {
|
||||
$url = str_replace($arr['scheme'] . '://' . $arr['host'], '', $url);
|
||||
$url = preg_replace('/!.*/', '', $url);
|
||||
}
|
||||
} elseif (!str_starts_with($url, '/')) {
|
||||
$url = '/' . $url;
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('uri_to_image_url')) {
|
||||
/**
|
||||
* 还原图片网址
|
||||
*
|
||||
* @param $uri
|
||||
* @return string|null
|
||||
*/
|
||||
function uri_to_image_url($uri): ?string
|
||||
{
|
||||
if (!$uri) {
|
||||
return null;
|
||||
}
|
||||
return config('filesystems.disks.' . config('filesystems.default') . '.domain') . url_to_uri($uri);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('string_to_array')) {
|
||||
/**
|
||||
* 字符串转数组(针对非0传值场景)
|
||||
*
|
||||
* @param mixed $string 原始字符串
|
||||
* @param bool $sort 是否重新排序
|
||||
* @param string $separator 切割字符
|
||||
* @return array
|
||||
*/
|
||||
function string_to_array(mixed $string, bool $sort = false, string $separator = ','): array
|
||||
{
|
||||
$arr = explode($separator, $string);
|
||||
foreach ($arr as &$value) {
|
||||
$value = trim($value);
|
||||
}
|
||||
$arr = array_filter($arr);
|
||||
if ($sort) {
|
||||
sort($arr);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user