# 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 )
- 参数:
$keys
array
多个配置名 - 参数:
$default
string
默认值 - 返回:
void
array|bool|int|mixed|\ModStart\Core\Config\MConfig|string
# modstart_config 获取配置
用于获取表 config 中的配置选项
modstart_config( $key, $default, $useCache )
- 参数:
$key
string
配置名称 - 参数:
$default
string|array|boolean|integer
默认值,不能为 null - 参数:
$useCache
boolean
启用缓存,默认为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 )
- 参数:
$key
string
配置名称 - 参数:
$default
string
默认值 - 返回:
string
# modstart_module_enabled 模块判断
判断模块是否已安装并启用
modstart_module_enabled( $module, $version )
- 参数:
$module
string
模块名称,如 Member - 参数:
$version
string
模块版本要求,如 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 )
- 参数:
$module
string
模块名称 - 参数:
$name
string
多语言 - 参数:
...$params
string|int
多语言参数 - 返回:
string
多语言翻译
代码示例
// 获取模块Member的多语言
LM('Member','Message')
// 获取模块Member的多语言,带参数
LM('Member','File Size Limit %s','10M')
2
3
4
# L 多语言
获取多语言翻译
L( $name, ...$params )
- 参数:
$name
string
多语言 - 参数:
...$params
string|int
多语言参数 - 返回:
string
多语言翻译
代码示例
// 返回 消息
L('Message');
// 返回 文件最大为10M
L('File Size Limit %s','10M');
2
3
4
# 数据库 ModelUtil
# model 构建模型
ModelUtil::model( $model )
- 参数:
$model
string
数据表 - 返回:
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 )
- 参数:
$model
string
数据表 - 参数:
$data
array
数据数组 - 返回:
array
插入的数据记录
代码示例
ModelUtil::insert('user',['username'=>'aaa','nickname'=>'bbb']);
# insertAll 插入多条数据
ModelUtil::insertAll( $model, $records, $updateTimestamp )
- 参数:
$model
string
数据表 - 参数:
$records
array
多条数据数组 - 参数:
$updateTimestamp
boolean
是否更新时间戳,默认为true - 返回:
void
代码示例
ModelUtil::insertAll('user',[ ['username'=>'aaa','nickname'=>'bbb'], ['username'=>'ccc','nickname'=>'ddd'] ]);
# delete 删除记录
ModelUtil::delete( $model, $where )
- 参数:
$model
string
数据表 - 参数:
$where
array|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 )
- 参数:
$model
string
数据表 - 参数:
$where
int|array
条件 - 参数:
$fields
array
数据表字段 - 参数:
$order
array
排序,如 ['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( )
- 返回:
string
pc, 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 )
- 参数:
$userAgent
string|null
浏览器UserAgent,为空时自动获取 - 返回:
string|null
机器人名称,非机器人时返回null
# 事件操作 EventUtil
# fire 触发一个Laravel事件,兼容了不同版本
EventUtil::fire( $event )
- 参数:
$event
object|string
- 返回:
void
# listen 监听一个Laravel事件
EventUtil::listen( $eventClass, $callback )
- 参数:
$eventClass
string
事件类名 - 参数:
$callback
callable
回调函数 - 返回:
void
# 文件 FileUtil
# mime 根据文件后缀获取MIME类型字符串
FileUtil::mime( $ext )
- 参数:
$ext
string
文件后缀 - 返回:
string|null
# mimeToExt 根据MIME类型字符串获取文件后缀
FileUtil::mimeToExt( $mime )
- 参数:
$mime
string
MIME类型字符串 - 返回:
string|null
# write 写入文件
FileUtil::write( $path, $content )
- 参数:
$path
string
- 参数:
$content
string
- 返回:
boolean
是否写入成功
# extension 获取文件后缀
FileUtil::extension( $pathname )
- 参数:
$pathname
string
文件路径 - 返回:
string
# listAllFiles 递归列出目录所有文件
FileUtil::listAllFiles( $dir, $filter )
- 参数:
$dir
string
目录 - 参数:
$filter
Closure
过滤器,为空表示不过滤 - 返回:
array
# listFiles 列出目录所有文件
FileUtil::listFiles( $filename, $pattern )
- 参数:
$filename
string
- 参数:
$pattern
string
后缀过滤,如 *.txt *.php 等 - 返回:
array
# formatByte 格式化字节
FileUtil::formatByte( $bytes, $decimals )
- 参数:
$bytes
integer
字节数 - 参数:
$decimals
integer
小数最多保留位数,默认为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 )
- 参数:
$bytes
integer
字节数 - 参数:
$decimals
integer
小数最多保留位数,默认为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 )
- 参数:
$sizeString
string
如 1M - 返回:
integer
# copy 复制目录
FileUtil::copy( $src, $dst, $replaceExt, $callback, $filter )
- 参数:
$src
string
源路径,必须给出,不能为空 - 参数:
$dst
string
源路径,必须给出,不能为空 - 参数:
$replaceExt
string|null
如果文件存在需要添加的后缀名,作为备份使用,如果不传表示不备份 - 参数:
$callback
Closure|null
复制回调 - 参数:
$filter
Closure|null
复制过滤器 - 返回:
null
注意:src 和 dst 如果是文件,需同时是文件,如果是目录,需同时是目录
# rm 删除目录
FileUtil::rm( $dir, $removeSelf )
- 参数:
$dir
string
目录 - 参数:
$removeSelf
boolean
是否删除本身 - 返回:
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( )
- 返回:
string
ID字符串
# generateSN 生成订单号
一个19位长的(BigInteger)
IdUtil::generateSN( )
- 返回:
string
代码示例
// 生成 20210101010101+12121
IdUtil::generateSN()
2
# 图片工具类 ImageUtil
# 分页渲染工具 PageHtmlUtil
# nextPageUrl 渲染下一页分页链接
PageHtmlUtil::nextPageUrl( $total, $pageSize, $currentPage, $url )
- 参数:
$total
integer
总记录数 - 参数:
$pageSize
integer
每页记录数 - 参数:
$currentPage
integer
当前页 - 参数:
$url
string
分页链接,页码使用 {page} 占位 - 返回:
void
# prevPageUrl 渲染上一页分页链接
PageHtmlUtil::prevPageUrl( $total, $pageSize, $currentPage, $url )
- 参数:
$total
integer
总记录数 - 参数:
$pageSize
integer
每页记录数 - 参数:
$currentPage
integer
当前页 - 参数:
$url
string
分页链接,页码使用 {page} 占位 - 返回:
void
# render 渲染分页工具
PageHtmlUtil::render( $total, $pageSize, $currentPage, $url, $template )
- 参数:
$total
integer
总记录数 - 参数:
$pageSize
integer
每页记录数 - 参数:
$currentPage
integer
当前页 - 参数:
$url
string
分页链接,页码使用 {page} 占位 - 参数:
$template
string
模板 - 返回:
void
# 二维码 QrcodeUtil
# png 生成二维码
生成PNG格式的二维码图片
QrcodeUtil::png( $content, $size )
- 参数:
$content
string
二维码内容 - 参数:
$size
integer
大小,默认200 - 返回:
string
图片二进制串
# pngBase64String 生成二维码
生成二维码Base64串
QrcodeUtil::pngBase64String( $content, $size )
- 参数:
$content
string
二维码内容 - 参数:
$size
integer
大小,默认200 - 返回:
string
二维码Base64字符串
代码示例
// 返回 data:image/png;base64,xxxxxxxx
QrcodeUtil::pngBase64String('http://www.xxx.com')
2
# 随机字符串 RandomUtil
# number 随机数字
RandomUtil::number( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# string 随机字符串
RandomUtil::string( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# readableString 随机可读字符串
去掉0、O等相似字符
RandomUtil::readableString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# lowerReadableString 随机可读字符串(小写)
RandomUtil::lowerReadableString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# upperReadableString 随机可读字符串(大写)
RandomUtil::upperReadableString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# hexString 随机Hex字符串
RandomUtil::hexString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# lowerString 随机小写字符串
RandomUtil::lowerString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# lowerChar 随机小写字符串
只包含字母
RandomUtil::lowerChar( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# upperChar 随机大写字符串
只包含字母
RandomUtil::upperChar( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# upperString 随机大写字符串
RandomUtil::upperString( $length )
- 参数:
$length
integer
长度 - 返回:
string
字符串
# uuid 随机UUID
使用年月日构造
RandomUtil::uuid( )
- 返回:
string
UUID
# percent 随机概率
RandomUtil::percent( $value )
- 参数:
$value
integer
概率值 - 返回:
boolean
是否成功
# 字符串处理 StrUtil
# mbLimit 按照UTF8编码裁减字符串(汉字和英文都占1个宽度)
StrUtil::mbLimit( $text, $limit )
- 参数:
$text
string
待裁剪字符串 - 参数:
$limit
integer
裁剪长度 - 返回:
string
# mbLimitChars 按照UTF8编码裁减字符串(汉字占3个宽度、英文都占1个宽度)
StrUtil::mbLimitChars( $text, $limit )
- 参数:
$text
string
待裁剪字符串 - 参数:
$limit
integer
裁剪长度 - 返回:
void
# mbLength 计算UTF8字符串宽度(汉字和英文都占1个宽度)
StrUtil::mbLength( $text )
- 参数:
$text
string
- 返回:
integer
# wordSplit 中文分词,如果未安装分词模块,则使用正则表达式分词
StrUtil::wordSplit( $content )
- 参数:
$content
string
分词的内容 - 返回:
array
分词结果
# Tree工具 TreeUtil
# itemsMergeLevel 为列表增加 _level 属性
TreeUtil::itemsMergeLevel( $items, $idName, $pidName, $sortName, $pid )
- 参数:
$items
array|Collection
数据记录 - 参数:
$idName
string
ID字段名,默认为 id - 参数:
$pidName
string
父级ID字段名,默认为 pid - 参数:
$sortName
string
排序字段名,默认为 sort - 参数:
$pid
int|string
父级ID,默认为 0 - 返回:
Collection
返回带有 _level 属性的集合