# 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
# 数据库 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
# 客户端 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
# 事件操作 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
# 分页渲染工具 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分词结果
# 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 属性的集合