# PHP工具类
# 全局函数
# modstart_version MSCore版本
获取MSCore版本
modstart_version( )
- 返回:
string版本号
# modstart_admin_url Admin路径
生成Admin的路径,自动加前缀
modstart_admin_url( string, array )
- 参数:
string$url路径 - 参数:
array$param参数 - 返回:
string
代码示例
// 返回 /admin/aaa/bbb
modstart_admin_url('aaa/bbb')
// 返回 /admin/aaa/bbb?x=y
modstart_admin_url('aaa/bbb',['x'=>'y'])
2
3
4
# modstart_web_full_url 生成完整的Web路径
modstart_web_full_url( string, array )
- 参数:
string$url路径 - 参数:
array$param参数 - 返回:
string地址
代码示例
// 返回 http://www.example.com/aaa/bbb
modstart_web_full_url('aaa/bbb')
// 返回 http://www.example.com/aaa/bbb?x=y
modstart_web_full_url('aaa/bbb',['x'=>'y'])
2
3
4
# modstart_web_url Web路径
生成Web的路径,自动加前缀
modstart_web_url( string, array )
- 参数:
string$url路径 - 参数:
array$param参数 - 返回:
string地址
代码示例
// 返回 /aaa/bbb
modstart_web_url('aaa/bbb')
// 返回 /aaa/bbb?x=y
modstart_web_url('aaa/bbb',['x'=>'y'])
2
3
4
# modstart_api_url Api路径
生成Api的路径,自动加前缀
modstart_api_url( string, array )
- 参数:
string$url路径 - 参数:
array$param参数 - 返回:
string
代码示例
// 返回 /api/aaa/bbb
modstart_api_url('aaa/bbb')
// 返回 /api/aaa/bbb?x=y
modstart_api_url('aaa/bbb',['x'=>'y'])
2
3
4
# modstart_configs 获取多个配置中第一个非空值
modstart_configs( $keys, $default )
- 参数:
$keysarray多个配置名 - 参数:
$defaultstring默认值 - 返回:
voidarray|bool|int|mixed|\ModStart\Core\Config\MConfig|string
# modstart_config 获取配置
用于获取表 config 中的配置选项
modstart_config( $key, $default, $useCache )
- 参数:
$keystring配置名称 - 参数:
$defaultstring|array|boolean|integer默认值,不能为 null - 参数:
$useCacheboolean启用缓存,默认为true - 返回:
string|array|boolean|integer|\ModStart\Core\Config\MConfig返回配置值或配置对象
代码示例
// 网站名称
modstart_config('siteName','[默认名称]');
// 获取一个配置数组,数组需存储成 json 格式
modstart_config()->getArray('xxx')
// 设置配置项
modstart_config()->set('xxx','aaa')
2
3
4
5
6
# modstart_config_asset_url 获取配置资源路径
modstart_config_asset_url( $key, $default )
- 参数:
$keystring配置名称 - 参数:
$defaultstring默认值 - 返回:
string
# modstart_module_enabled 模块判断
判断模块是否已安装并启用
modstart_module_enabled( $module, $version )
- 参数:
$modulestring模块名称,如 Member - 参数:
$versionstring模块版本要求,如 1.0.0, >=1.0.0 - 返回:
boolean模块是否安装并启用
代码示例
// 模块Member是否安装并启用
modstart_module_enabled('Member')
// 模块Member是否安装了 >=1.2.0 的版本
modstart_module_enabled('Member','>=1.2.0')
2
3
4
# LM 多语言(模块)
LM( $module, $name, ...$params )
- 参数:
$modulestring模块名称 - 参数:
$namestring多语言 - 参数:
...$paramsstring|int多语言参数 - 返回:
string多语言翻译
代码示例
// 获取模块Member的多语言
LM('Member','Message')
// 获取模块Member的多语言,带参数
LM('Member','File Size Limit %s','10M')
2
3
4
# L 多语言
获取多语言翻译
L( $name, ...$params )
- 参数:
$namestring多语言 - 参数:
...$paramsstring|int多语言参数 - 返回:
string多语言翻译
代码示例
// 返回 消息
L('Message');
// 返回 文件最大为10M
L('File Size Limit %s','10M');
2
3
4
# L_locale 设置/获取当前语言环境
L_locale( $locale )
- 参数:
$localestring|null语言环境,如zh、en - 返回:
string当前语言环境
代码示例
// 获取当前语言环境
$locale = L_locale();
// 设置当前语言环境
L_locale('en');
2
3
4
# L_locale_title 获取当前语言名称
L_locale_title( $locale )
- 参数:
$localestring语言环境 - 返回:
string语言名称
# modstart_open_api_url OpenApi路径
生成 OpenApi 的路径,自动加前缀
modstart_open_api_url( $url )
- 参数:
$urlstring路径 - 返回:
string
代码示例
// 返回 /open_api/aaa/bbb
modstart_open_api_url('aaa/bbb')
2
# modstart_baseurl_active 判断当前URL是否匹配
用于菜单高亮等场景,判断当前 URL 是否匹配并返回激活样式类名
modstart_baseurl_active( $match, $output )
- 参数:
$matchstring匹配 URL - 参数:
$outputstring匹配成功返回的内容,默认为active - 返回:
string
代码示例
// 当前URL为 /admin/blog 时返回 active
modstart_baseurl_active('/admin/blog')
2
# modstart_module_config 获取模块配置
获取指定模块的配置项
modstart_module_config( $module, $key, $default )
- 参数:
$modulestring模块名称 - 参数:
$keystring配置键名 - 参数:
$defaultmixed默认值 - 返回:
mixed
# 数据库 ModelUtil
# model 构建模型
ModelUtil::model( $model )
- 参数:
$modelstring数据表 - 返回:
Model|Builder数据库模型
代码示例
// 查询
ModelUtil::model('user')->where(['id'=>1])->get()->toArray();
ModelUtil::model('user')->where('id','>',5)->get()->toArray();
// 查询-like
ModelUtil::model('user')->where('username','like','%keywords%')->get()->toArray();
// 查询-limit
ModelUtil::model('user')->limit(5)->get()->toArray();
// 查询-原生SQL
ModelUtil::model('user')->whereRaw(DB::raw('id > 0 OR id is null'))->get()->toArray();
// 删除
ModelUtil::model('user')->where(['id'=>1])->delete();
// 更新
ModelUtil::model('user')->where(['id'=>1])->update(['username'=>'aaa']);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# insert 插入数据
ModelUtil::insert( $model, $data )
- 参数:
$modelstring数据表 - 参数:
$dataarray数据数组 - 返回:
array插入的数据记录
代码示例
ModelUtil::insert('user',['username'=>'aaa','nickname'=>'bbb']);
# insertAll 插入多条数据
ModelUtil::insertAll( $model, $records, $updateTimestamp )
- 参数:
$modelstring数据表 - 参数:
$recordsarray多条数据数组 - 参数:
$updateTimestampboolean是否更新时间戳,默认为true - 返回:
void
代码示例
ModelUtil::insertAll('user',[ ['username'=>'aaa','nickname'=>'bbb'], ['username'=>'ccc','nickname'=>'ddd'] ]);
# delete 删除记录
ModelUtil::delete( $model, $where )
- 参数:
$modelstring数据表 - 参数:
$wherearray|int条件数组或数据ID - 返回:
integer被删除的记录数量
代码示例
// 删除ID为1的用户
ModelUtil::delete('user',1);
// 删除用户名为aaa的用户
ModelUtil::delete('user',['username'=>'aaa']);
2
3
4
# get 获取单条记录
ModelUtil::get( $model, $where, $fields, $order )
- 参数:
$modelstring数据表 - 参数:
$whereint|array条件 - 参数:
$fieldsarray数据表字段 - 参数:
$orderarray排序,如 ['id','asc'] - 返回:
array|null数据记录
代码示例
ModelUtil::get('user',1);
ModelUtil::get('user',['username'=>'xxx']);
更复杂的数据获取可以使用 ModelUtil::model('xxx') 进行操作
2
3
# 业务异常 BizException
ModStart\Core\Exception\BizException 是系统中最常用的业务异常类。当业务逻辑校验不通过时,使用 BizException::throws 抛出异常,系统会自动捕获并返回友好的错误提示。
# throws 抛出业务异常
BizException::throws( $msg, $param )
- 参数:
$msgstring错误消息 - 参数:
$paramarray额外参数 - 返回:
void(抛出异常)
代码示例
if (!$user) {
BizException::throws('用户不存在');
}
2
3
# throwsIf 条件抛出
BizException::throwsIf( $msg, $condition, $param )
- 参数:
$msgstring错误消息 - 参数:
$conditionmixed条件,为 true 时抛出 - 参数:
$paramarray额外参数 - 返回:
void
代码示例
BizException::throwsIf('用户不存在', empty($user));
# throwsIfEmpty 空值抛出
BizException::throwsIfEmpty( $msg, $object, $param )
- 参数:
$msgstring错误消息 - 参数:
$objectmixed值,为空时抛出 - 参数:
$paramarray额外参数 - 返回:
void
# throwsIfResponseError 接口响应错误抛出
BizException::throwsIfResponseError( $response, $prefix, $param )
- 参数:
$responsearray标准响应数组(含 code 字段) - 参数:
$prefixstring错误前缀 - 参数:
$paramarray额外参数 - 返回:
void
代码示例
$ret = CurlUtil::postJSON($url, $data);
BizException::throwsIfResponseError($ret, '远程请求失败');
2
# 结果异常 ResultException
用于标准格式响应(code/msg/data)的异常处理。
# throwsIfFail 判断响应是否有错误
ResultException::throwsIfFail( $ret )
- 参数:
$retarray标准响应数组 - 返回:
void(code != 0 时抛出异常)
代码示例
$ret = modstart_config()->set('siteName', '新名称');
ResultException::throwsIfFail($ret);
2
# 客户端 AgentUtil
# getUserAgent 获取浏览器UserAgent
AgentUtil::getUserAgent( )
- 返回:
string
# device 判断浏览器类型
AgentUtil::device( )
- 返回:
stringpc, mobile
# isWechat 判断是否是微信浏览器
AgentUtil::isWechat( )
- 返回:
boolean
# isWechatMobile 判断是否是微信手机浏览器
AgentUtil::isWechatMobile( )
- 返回:
boolean
# isWechatPC 判断是否是微信PC浏览器
AgentUtil::isWechatPC( )
- 返回:
boolean
# isMobile 判断是否是手机浏览器
AgentUtil::isMobile( )
- 返回:
boolean
# isPC 判断是否是电脑浏览器
AgentUtil::isPC( )
- 返回:
boolean
# detectRobot 获取机器人类型
AgentUtil::detectRobot( $userAgent )
- 参数:
$userAgentstring|null浏览器UserAgent,为空时自动获取 - 返回:
string|null机器人名称,非机器人时返回null
# 输入输出 Request / Response / InputPackage
命名空间:ModStart\Core\Input
# Request HTTP请求工具
ModStart\Core\Input\Request 提供 HTTP 请求的便捷获取。
# path 获取请求路径
Request::path( )
- 返回:
string无前导斜杠的路径
# basePath 获取完整路径
Request::basePath( )
- 返回:
string包含前缀的完整路径
# basePathWithQueries 获取完整路径及参数
Request::basePathWithQueries( )
- 返回:
string完整路径 + 查询字符串
# domainUrl 获取域名URL
Request::domainUrl( )
- 返回:
string如http://www.example.com
# isAjax 是否为AJAX请求
Request::isAjax( )
- 返回:
boolean
# isPost 是否为POST请求
Request::isPost( )
- 返回:
boolean
# headerGet 获取请求头
Request::headerGet( $key, $default )
- 参数:
$keystring请求头名称 - 参数:
$defaultstring|null默认值 - 返回:
string|null
# Response 响应工具
ModStart\Core\Input\Response 生成标准响应结构。
# generate 生成标准响应数组
Response::generate( $code, $msg, $data, $redirect )
- 参数:
$codeinteger状态码,0 为成功 - 参数:
$msgstring提示消息 - 参数:
$datamixed数据 - 参数:
$redirectstring|null重定向地址 - 返回:
array
# json 返回JSON响应
Response::json( $code, $msg, $data, $redirect )
- 返回:
\Illuminate\Http\JsonResponse
# jsonSuccess 返回成功JSON
Response::jsonSuccess( $msg, $data )
- 返回:
\Illuminate\Http\JsonResponse
# jsonError 返回错误JSON
Response::jsonError( $msg, $data, $redirect )
- 返回:
\Illuminate\Http\JsonResponse
# send 智能发送响应
自动判断:AJAX 请求返回 JSON,否则返回 HTML 重定向。
Response::send( $code, $msg, $redirect )
- 返回:
mixed
# sendError 发送错误响应
Response::sendError( $msg, $redirect )
- 返回:
mixed
# page404 返回404页面
Response::page404( )
- 返回:
\Illuminate\Http\Response
# page403 返回403页面
Response::page403( )
- 返回:
\Illuminate\Http\Response
# InputPackage 输入参数包
用于安全地获取请求参数。
// 获取请求参数包
$input = InputPackage::buildFromInput();
// 或从数组构建
$input = new InputPackage($array);
2
3
4
常用方法:
| 方法 | 描述 |
|---|---|
getInteger($key, $default) | 获取整型参数 |
getTrimString($key, $default) | 获取去除首尾空格的字符串 |
getBoolean($key, $default) | 获取布尔值 |
getArray($key, $default) | 获取数组参数 |
getPage() | 获取当前页码 |
getPageSize() | 获取每页数量 |
getImage($key) | 获取图片参数 |
getFile($key) | 获取文件参数 |
getRichHtml($key) | 获取富文本参数 |
set($key, $value) | 设置参数 |
has($key) | 判断参数存在 |
all() | 获取所有参数 |
# 事件操作 EventUtil
# fire 触发一个Laravel事件,兼容了不同版本
EventUtil::fire( $event )
- 参数:
$eventobject|string - 返回:
void
# listen 监听一个Laravel事件
EventUtil::listen( $eventClass, $callback )
- 参数:
$eventClassstring事件类名 - 参数:
$callbackcallable回调函数 - 返回:
void
# 文件 FileUtil
# mime 根据文件后缀获取MIME类型字符串
FileUtil::mime( $ext )
- 参数:
$extstring文件后缀 - 返回:
string|null
# mimeToExt 根据MIME类型字符串获取文件后缀
FileUtil::mimeToExt( $mime )
- 参数:
$mimestringMIME类型字符串 - 返回:
string|null
# write 写入文件
FileUtil::write( $path, $content )
- 参数:
$pathstring - 参数:
$contentstring - 返回:
boolean是否写入成功
# extension 获取文件后缀
FileUtil::extension( $pathname )
- 参数:
$pathnamestring文件路径 - 返回:
string
# listAllFiles 递归列出目录所有文件
FileUtil::listAllFiles( $dir, $filter )
- 参数:
$dirstring目录 - 参数:
$filterClosure过滤器,为空表示不过滤 - 返回:
array
# listFiles 列出目录所有文件
FileUtil::listFiles( $filename, $pattern )
- 参数:
$filenamestring - 参数:
$patternstring后缀过滤,如 *.txt *.php 等 - 返回:
array
# formatByte 格式化字节
FileUtil::formatByte( $bytes, $decimals )
- 参数:
$bytesinteger字节数 - 参数:
$decimalsinteger小数最多保留位数,默认为2 - 返回:
string
代码示例
// 返回 1 MB
FileUtil::formatByte(1024*1024)
// 返回 1.5 GB
FileUtil::formatByte(1024*1024*1024*1.5)
2
3
4
# formatByteSimple 格式化字节(简化)
FileUtil::formatByteSimple( $bytes, $decimals )
- 参数:
$bytesinteger字节数 - 参数:
$decimalsinteger小数最多保留位数,默认为2 - 返回:
string
代码示例
// 返回 1 M
FileUtil::formatByte(1024*1024)
// 返回 1.5 G
FileUtil::formatByte(1024*1024*1024*1.5)
2
3
4
# formattedSizeToBytes 格式化的文件大小转换为字节
FileUtil::formattedSizeToBytes( $sizeString )
- 参数:
$sizeStringstring如 1M - 返回:
integer
# copy 复制目录
FileUtil::copy( $src, $dst, $replaceExt, $callback, $filter )
- 参数:
$srcstring源路径,必须给出,不能为空 - 参数:
$dststring源路径,必须给出,不能为空 - 参数:
$replaceExtstring|null如果文件存在需要添加的后缀名,作为备份使用,如果不传表示不备份 - 参数:
$callbackClosure|null复制回调 - 参数:
$filterClosure|null复制过滤器 - 返回:
null注意:src 和 dst 如果是文件,需同时是文件,如果是目录,需同时是目录
# rm 删除目录
FileUtil::rm( $dir, $removeSelf )
- 参数:
$dirstring目录 - 参数:
$removeSelfboolean是否删除本身 - 返回:
boolean
# ID生成 IdUtil
# generate 带前缀的ID
一般用于页面渲染时页面元素唯一ID
IdUtil::generate( string )
- 参数:
string$group - 返回:
string生成的ID字符串
代码示例
// 将生成 Aaa_1 Aaa_2 Aaa_3
IdUtil::generate('Aaa')
2
# next64BitId 获取64位ID
IdUtil::next64BitId( )
- 返回:
stringID字符串
# generateSN 生成订单号
一个19位长的(BigInteger)
IdUtil::generateSN( )
- 返回:
string
代码示例
// 生成 20210101010101+12121
IdUtil::generateSN()
2
# 图片工具类 ImageUtil
# pngBase64 将图片文件转为Base64
ImageUtil::pngBase64( $path )
- 参数:
$pathstring图片路径 - 返回:
string|nullBase64字符串
# toWidth 调整图片宽度
ImageUtil::toWidth( $path, $width )
- 参数:
$pathstring图片路径 - 参数:
$widthinteger目标宽度 - 返回:
string处理后的图片路径
# CRUD工具 CRUDUtil
ModStart\Core\Util\CRUDUtil 提供 CRUD 开发的通用工具方法。
# id 获取当前记录ID
CRUDUtil::id( )
- 返回:
integer从当前请求中获取的记录ID
# ids 获取ID数组
CRUDUtil::ids( )
- 返回:
array整数ID数组,用于批量操作
# copyId 获取复制源ID
CRUDUtil::copyId( )
- 返回:
integer|null复制操作时的源记录ID
# scope 获取当前作用域
CRUDUtil::scope( )
- 返回:
string|null当前作用域值
# registerRouteResource 注册标准CRUD路由
CRUDUtil::registerRouteResource( $prefix, $class )
- 参数:
$prefixstring路由前缀 - 参数:
$classstring控制器类名
代码示例
// 注册 blog 的标准 CRUD 路由
CRUDUtil::registerRouteResource('blog', 'BlogController');
2
# jsDialogClose 关闭弹框
CRUDUtil::jsDialogClose( $flag )
- 返回:
stringJavaScript 代码
# jsDialogCloseAndParentGridRefresh 关闭弹框并刷新父表格
CRUDUtil::jsDialogCloseAndParentGridRefresh( $flag )
- 返回:
stringJavaScript 代码
# jsGridRefresh 刷新数据表格
CRUDUtil::jsGridRefresh( $index, $flag )
- 返回:
stringJavaScript 代码
# adminRedirectOrTabClose 后台重定向或关闭标签页
CRUDUtil::adminRedirectOrTabClose( $url )
- 返回:
stringJavaScript 代码
# 分页渲染工具 PageHtmlUtil
# nextPageUrl 渲染下一页分页链接
PageHtmlUtil::nextPageUrl( $total, $pageSize, $currentPage, $url )
- 参数:
$totalinteger总记录数 - 参数:
$pageSizeinteger每页记录数 - 参数:
$currentPageinteger当前页 - 参数:
$urlstring分页链接,页码使用 {page} 占位 - 返回:
void
# prevPageUrl 渲染上一页分页链接
PageHtmlUtil::prevPageUrl( $total, $pageSize, $currentPage, $url )
- 参数:
$totalinteger总记录数 - 参数:
$pageSizeinteger每页记录数 - 参数:
$currentPageinteger当前页 - 参数:
$urlstring分页链接,页码使用 {page} 占位 - 返回:
void
# render 渲染分页工具
PageHtmlUtil::render( $total, $pageSize, $currentPage, $url, $template )
- 参数:
$totalinteger总记录数 - 参数:
$pageSizeinteger每页记录数 - 参数:
$currentPageinteger当前页 - 参数:
$urlstring分页链接,页码使用 {page} 占位 - 参数:
$templatestring模板 - 返回:
void
# 二维码 QrcodeUtil
# png 生成二维码
生成PNG格式的二维码图片
QrcodeUtil::png( $content, $size )
- 参数:
$contentstring二维码内容 - 参数:
$sizeinteger大小,默认200 - 返回:
string图片二进制串
# pngBase64String 生成二维码
生成二维码Base64串
QrcodeUtil::pngBase64String( $content, $size )
- 参数:
$contentstring二维码内容 - 参数:
$sizeinteger大小,默认200 - 返回:
string二维码Base64字符串
代码示例
// 返回 data:image/png;base64,xxxxxxxx
QrcodeUtil::pngBase64String('http://www.xxx.com')
2
# 随机字符串 RandomUtil
# number 随机数字
RandomUtil::number( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# string 随机字符串
RandomUtil::string( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# readableString 随机可读字符串
去掉0、O等相似字符
RandomUtil::readableString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# lowerReadableString 随机可读字符串(小写)
RandomUtil::lowerReadableString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# upperReadableString 随机可读字符串(大写)
RandomUtil::upperReadableString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# hexString 随机Hex字符串
RandomUtil::hexString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# lowerString 随机小写字符串
RandomUtil::lowerString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# lowerChar 随机小写字符串
只包含字母
RandomUtil::lowerChar( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# upperChar 随机大写字符串
只包含字母
RandomUtil::upperChar( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# upperString 随机大写字符串
RandomUtil::upperString( $length )
- 参数:
$lengthinteger长度 - 返回:
string字符串
# uuid 随机UUID
使用年月日构造
RandomUtil::uuid( )
- 返回:
stringUUID
# percent 随机概率
RandomUtil::percent( $value )
- 参数:
$valueinteger概率值 - 返回:
boolean是否成功
# 字符串处理 StrUtil
# mbLimit 按照UTF8编码裁减字符串(汉字和英文都占1个宽度)
StrUtil::mbLimit( $text, $limit )
- 参数:
$textstring待裁剪字符串 - 参数:
$limitinteger裁剪长度 - 返回:
string
# mbLimitChars 按照UTF8编码裁减字符串(汉字占3个宽度、英文都占1个宽度)
StrUtil::mbLimitChars( $text, $limit )
- 参数:
$textstring待裁剪字符串 - 参数:
$limitinteger裁剪长度 - 返回:
void
# mbLength 计算UTF8字符串宽度(汉字和英文都占1个宽度)
StrUtil::mbLength( $text )
- 参数:
$textstring - 返回:
integer
# wordSplit 中文分词,如果未安装分词模块,则使用正则表达式分词
StrUtil::wordSplit( $content )
- 参数:
$contentstring分词的内容 - 返回:
array分词结果
# 类型系统 TypeUtil / BaseType
ModStart\Core\Type\BaseType 是枚举类型接口,ModStart\Core\Type\TypeUtil 提供枚举类型工具方法。
# BaseType 枚举类型接口
定义一个枚举类型类:
use ModStart\Core\Type\BaseType;
class BlogStatus implements BaseType
{
const DRAFT = 1;
const PUBLISHED = 2;
const ARCHIVED = 3;
public static function getList()
{
return [
self::DRAFT => '草稿',
self::PUBLISHED => '已发布',
self::ARCHIVED => '已归档',
];
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# TypeUtil::getList 获取枚举列表
TypeUtil::getList( $typeClass )
- 参数:
$typeClassstring实现了 BaseType 的类名
# 在字段中使用枚举类型
// Select 下拉使用
$field->optionType(BlogStatus::class);
// Radio 单选使用
$field->optionType(BlogStatus::class);
// Type 字段显示(带颜色映射)
$field->type(BlogStatus::class, [
BlogStatus::DRAFT => 'warning',
BlogStatus::PUBLISHED => 'success',
BlogStatus::ARCHIVED => 'default',
]);
2
3
4
5
6
7
8
9
10
11
12
# 其他常用工具类
# EnvUtil 环境工具
ModStart\Core\Util\EnvUtil
| 方法 | 描述 |
|---|---|
env($key, $default) | 获取环境变量值 |
isWin() | 是否为 Windows 系统 |
isMac() | 是否为 Mac 系统 |
isCli() | 是否为命令行模式 |
# CacheUtil 缓存工具
ModStart\Core\Util\CacheUtil
| 方法 | 描述 |
|---|---|
get($key, $default) | 获取缓存 |
put($key, $value, $minutes) | 写入缓存 |
forget($key) | 删除缓存 |
remember($key, $minutes, $callback) | 记住缓存结果 |
# LogUtil 日志工具
ModStart\Core\Util\LogUtil
| 方法 | 描述 |
|---|---|
info($tag, $data) | 记录信息日志 |
error($tag, $data) | 记录错误日志 |
withTime($content) | 在内容前添加时间戳 |
# SessionUtil 会话工具
ModStart\Core\Util\SessionUtil
| 方法 | 描述 |
|---|---|
put($key, $value) | 写入 Session |
get($key, $default) | 读取 Session |
forget($key) | 删除 Session |
flash($key, $value) | 闪存数据(仅下次请求有效) |
# RouteUtil 路由工具
ModStart\Core\Util\RouteUtil
| 方法 | 描述 |
|---|---|
moduleActionUrl($name, $parameters) | 生成模块操作 URL |
moduleActionUrlSafe($name, $parameters) | 安全生成模块操作 URL |
# ConvertUtil 数据转换工具
ModStart\Core\Util\ConvertUtil
| 方法 | 描述 |
|---|---|
toBoolean($value) | 转换为布尔值 |
toInteger($value) | 转换为整数 |
toString($value) | 转换为字符串 |
toArray($value) | 转换为数组 |
nullable($value) | 空值转 null |
# FormatUtil 格式化工具
ModStart\Core\Util\FormatUtil
| 方法 | 描述 |
|---|---|
percent($value, $total) | 计算百分比 |
secondsToString($seconds) | 秒数转可读时间 |
# TimeUtil 时间工具
ModStart\Core\Util\TimeUtil
| 方法 | 描述 |
|---|---|
now() | 获取当前时间字符串 |
today() | 获取今天日期 |
isTimestamp($value) | 判断是否为时间戳 |
humanReadable($timestamp) | 人性化时间显示(如"3分钟前") |
# CurlUtil 网络请求工具
ModStart\Core\Util\CurlUtil
| 方法 | 描述 |
|---|---|
get($url, $param) | GET 请求 |
post($url, $param) | POST 请求(form 方式) |
postJSON($url, $param) | POST JSON 请求 |
postRaw($url, $body) | POST 原始数据 |
# HtmlUtil HTML工具
ModStart\Core\Util\HtmlUtil
| 方法 | 描述 |
|---|---|
text($html) | HTML 转纯文本 |
limit($html, $length) | 截取 HTML 内容 |
stripTags($html) | 去除 HTML 标签 |
# SecureUtil 安全工具
ModStart\Core\Util\SecureUtil
| 方法 | 描述 |
|---|---|
md5($str) | MD5 加密 |
passwordHash($password) | 密码哈希 |
passwordVerify($password, $hash) | 验证密码哈希 |
randomString($length) | 生成安全随机字符串 |
# IpUtil IP工具
ModStart\Core\Util\IpUtil
| 方法 | 描述 |
|---|---|
get() | 获取客户端 IP 地址 |
isIp($ip) | 判断是否为有效 IP |
# Tree工具 TreeUtil
# itemsMergeLevel 为列表增加 _level 属性
TreeUtil::itemsMergeLevel( $items, $idName, $pidName, $sortName, $pid )
- 参数:
$itemsarray|Collection数据记录 - 参数:
$idNamestringID字段名,默认为 id - 参数:
$pidNamestring父级ID字段名,默认为 pid - 参数:
$sortNamestring排序字段名,默认为 sort - 参数:
$pidint|string父级ID,默认为 0 - 返回:
Collection返回带有 _level 属性的集合