QQ扫一扫联系
获取MSCore版本
modstart_version( )
string 版本号生成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'])
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'])
生成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'])
生成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'])
modstart_configs( $keys, $default )
$keys array 多个配置名$default string 默认值void array|bool|int|mixed|\ModStart\Core\Config\MConfig|string用于获取表 config 中的配置选项
modstart_config( $key, $default, $useCache )
$key string 配置名称$default string|array|boolean|integer 默认值,不能为 null$useCache boolean 启用缓存,默认为truestring|array|boolean|integer|\ModStart\Core\Config\MConfig 返回配置值或配置对象代码示例
// 网站名称
modstart_config('siteName','[默认名称]');
// 获取一个配置数组,数组需存储成 json 格式
modstart_config()->getArray('xxx')
// 设置配置项
modstart_config()->set('xxx','aaa')
modstart_config_asset_url( $key, $default )
$key string 配置名称$default string 默认值string
判断模块是否已安装并启用
modstart_module_enabled( $module, $version )
$module string 模块名称,如 Member$version string 模块版本要求,如 1.0.0, >=1.0.0boolean 模块是否安装并启用代码示例
// 模块Member是否安装并启用
modstart_module_enabled('Member')
// 模块Member是否安装了 >=1.2.0 的版本
modstart_module_enabled('Member','>=1.2.0')
LM( $module, $name, ...$params )
$module string 模块名称$name string 多语言...$params string|int 多语言参数string 多语言翻译代码示例
// 获取模块Member的多语言
LM('Member','Message')
// 获取模块Member的多语言,带参数
LM('Member','File Size Limit %s','10M')
获取多语言翻译
L( $name, ...$params )
$name string 多语言...$params string|int 多语言参数string 多语言翻译代码示例
// 返回 消息
L('Message');
// 返回 文件最大为10M
L('File Size Limit %s','10M');
L_locale( $locale )
$locale string|null 语言环境,如 zh、en
string 当前语言环境代码示例
// 获取当前语言环境
$locale = L_locale();
// 设置当前语言环境
L_locale('en');
L_locale_title( $locale )
$locale string 语言环境string 语言名称生成 OpenApi 的路径,自动加前缀
modstart_open_api_url( $url )
$url string 路径string
代码示例
// 返回 /open_api/aaa/bbb
modstart_open_api_url('aaa/bbb')
用于菜单高亮等场景,判断当前 URL 是否匹配并返回激活样式类名
modstart_baseurl_active( $match, $output )
$match string 匹配 URL$output string 匹配成功返回的内容,默认为 active
string
代码示例
// 当前URL为 /admin/blog 时返回 active
modstart_baseurl_active('/admin/blog')
获取指定模块的配置项
modstart_module_config( $module, $key, $default )
$module string 模块名称$key string 配置键名$default mixed 默认值mixed
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']);
ModelUtil::insert( $model, $data )
$model string 数据表$data array 数据数组array 插入的数据记录代码示例
ModelUtil::insert('user',['username'=>'aaa','nickname'=>'bbb']);
ModelUtil::insertAll( $model, $records, $updateTimestamp )
$model string 数据表$records array 多条数据数组$updateTimestamp boolean 是否更新时间戳,默认为truevoid
代码示例
ModelUtil::insertAll('user',[ ['username'=>'aaa','nickname'=>'bbb'], ['username'=>'ccc','nickname'=>'ddd'] ]);
ModelUtil::delete( $model, $where )
$model string 数据表$where array|int 条件数组或数据IDinteger 被删除的记录数量代码示例
// 删除ID为1的用户
ModelUtil::delete('user',1);
// 删除用户名为aaa的用户
ModelUtil::delete('user',['username'=>'aaa']);
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') 进行操作
ModStart\Core\Exception\BizException 是系统中最常用的业务异常类。当业务逻辑校验不通过时,使用 BizException::throws 抛出异常,系统会自动捕获并返回友好的错误提示。
BizException::throws( $msg, $param )
$msg string 错误消息$param array 额外参数void(抛出异常)代码示例
if (!$user) {
BizException::throws('用户不存在');
}
BizException::throwsIf( $msg, $condition, $param )
$msg string 错误消息$condition mixed 条件,为 true 时抛出$param array 额外参数void
代码示例
BizException::throwsIf('用户不存在', empty($user));
BizException::throwsIfEmpty( $msg, $object, $param )
$msg string 错误消息$object mixed 值,为空时抛出$param array 额外参数void
BizException::throwsIfResponseError( $response, $prefix, $param )
$response array 标准响应数组(含 code 字段)$prefix string 错误前缀$param array 额外参数void
代码示例
$ret = CurlUtil::postJSON($url, $data);
BizException::throwsIfResponseError($ret, '远程请求失败');
用于标准格式响应(code/msg/data)的异常处理。
ResultException::throwsIfFail( $ret )
$ret array 标准响应数组void(code != 0 时抛出异常)代码示例
$ret = modstart_config()->set('siteName', '新名称');
ResultException::throwsIfFail($ret);
AgentUtil::getUserAgent( )
string
AgentUtil::device( )
string pc, mobileAgentUtil::isWechat( )
boolean
AgentUtil::isWechatMobile( )
boolean
AgentUtil::isWechatPC( )
boolean
AgentUtil::isMobile( )
boolean
AgentUtil::isPC( )
boolean
AgentUtil::detectRobot( $userAgent )
$userAgent string|null 浏览器UserAgent,为空时自动获取string|null 机器人名称,非机器人时返回null命名空间:ModStart\Core\Input
ModStart\Core\Input\Request 提供 HTTP 请求的便捷获取。
Request::path( )
string 无前导斜杠的路径Request::basePath( )
string 包含前缀的完整路径Request::basePathWithQueries( )
string 完整路径 + 查询字符串Request::domainUrl( )
string 如 http://www.example.com
Request::isAjax( )
boolean
Request::isPost( )
boolean
Request::headerGet( $key, $default )
$key string 请求头名称$default string|null 默认值string|null
ModStart\Core\Input\Response 生成标准响应结构。
Response::generate( $code, $msg, $data, $redirect )
$code integer 状态码,0 为成功$msg string 提示消息$data mixed 数据$redirect string|null 重定向地址array
Response::json( $code, $msg, $data, $redirect )
\Illuminate\Http\JsonResponse
Response::jsonSuccess( $msg, $data )
\Illuminate\Http\JsonResponse
Response::jsonError( $msg, $data, $redirect )
\Illuminate\Http\JsonResponse
自动判断:AJAX 请求返回 JSON,否则返回 HTML 重定向。
Response::send( $code, $msg, $redirect )
mixed
Response::sendError( $msg, $redirect )
mixed
Response::page404( )
\Illuminate\Http\Response
Response::page403( )
\Illuminate\Http\Response
用于安全地获取请求参数。
// 获取请求参数包
$input = InputPackage::buildFromInput();
// 或从数组构建
$input = new InputPackage($array);
常用方法:
| 方法 | 描述 |
|---|---|
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( $event )
$event object|string
void
EventUtil::listen( $eventClass, $callback )
$eventClass string 事件类名$callback callable 回调函数void
FileUtil::mime( $ext )
$ext string 文件后缀string|null
FileUtil::mimeToExt( $mime )
$mime string MIME类型字符串string|null
FileUtil::write( $path, $content )
$path string
$content string
boolean 是否写入成功FileUtil::extension( $pathname )
$pathname string 文件路径string
FileUtil::listAllFiles( $dir, $filter )
$dir string 目录$filter Closure 过滤器,为空表示不过滤array
FileUtil::listFiles( $filename, $pattern )
$filename string
$pattern string 后缀过滤,如 *.txt *.php 等array
FileUtil::formatByte( $bytes, $decimals )
$bytes integer 字节数$decimals integer 小数最多保留位数,默认为2string
代码示例
// 返回 1 MB
FileUtil::formatByte(1024*1024)
// 返回 1.5 GB
FileUtil::formatByte(1024*1024*1024*1.5)
FileUtil::formatByteSimple( $bytes, $decimals )
$bytes integer 字节数$decimals integer 小数最多保留位数,默认为2string
代码示例
// 返回 1 M
FileUtil::formatByte(1024*1024)
// 返回 1.5 G
FileUtil::formatByte(1024*1024*1024*1.5)
FileUtil::formattedSizeToBytes( $sizeString )
$sizeString string 如 1Minteger
FileUtil::copy( $src, $dst, $replaceExt, $callback, $filter )
$src string 源路径,必须给出,不能为空$dst string 源路径,必须给出,不能为空$replaceExt string|null 如果文件存在需要添加的后缀名,作为备份使用,如果不传表示不备份$callback Closure|null 复制回调$filter Closure|null 复制过滤器null 注意:src 和 dst 如果是文件,需同时是文件,如果是目录,需同时是目录FileUtil::rm( $dir, $removeSelf )
$dir string 目录$removeSelf boolean 是否删除本身boolean
一般用于页面渲染时页面元素唯一ID
IdUtil::generate( string )
string $group
string 生成的ID字符串代码示例
// 将生成 Aaa_1 Aaa_2 Aaa_3
IdUtil::generate('Aaa')
IdUtil::next64BitId( )
string ID字符串一个19位长的(BigInteger)
IdUtil::generateSN( )
string
代码示例
// 生成 20210101010101+12121
IdUtil::generateSN()
ImageUtil::pngBase64( $path )
$path string 图片路径string|null Base64字符串ImageUtil::toWidth( $path, $width )
$path string 图片路径$width integer 目标宽度string 处理后的图片路径ModStart\Core\Util\CRUDUtil 提供 CRUD 开发的通用工具方法。
CRUDUtil::id( )
integer 从当前请求中获取的记录IDCRUDUtil::ids( )
array 整数ID数组,用于批量操作CRUDUtil::copyId( )
integer|null 复制操作时的源记录IDCRUDUtil::scope( )
string|null 当前作用域值CRUDUtil::registerRouteResource( $prefix, $class )
$prefix string 路由前缀$class string 控制器类名代码示例
// 注册 blog 的标准 CRUD 路由
CRUDUtil::registerRouteResource('blog', 'BlogController');
CRUDUtil::jsDialogClose( $flag )
string JavaScript 代码CRUDUtil::jsDialogCloseAndParentGridRefresh( $flag )
string JavaScript 代码CRUDUtil::jsGridRefresh( $index, $flag )
string JavaScript 代码CRUDUtil::adminRedirectOrTabClose( $url )
string JavaScript 代码PageHtmlUtil::nextPageUrl( $total, $pageSize, $currentPage, $url )
$total integer 总记录数$pageSize integer 每页记录数$currentPage integer 当前页$url string 分页链接,页码使用 {page} 占位void
PageHtmlUtil::prevPageUrl( $total, $pageSize, $currentPage, $url )
$total integer 总记录数$pageSize integer 每页记录数$currentPage integer 当前页$url string 分页链接,页码使用 {page} 占位void
PageHtmlUtil::render( $total, $pageSize, $currentPage, $url, $template )
$total integer 总记录数$pageSize integer 每页记录数$currentPage integer 当前页$url string 分页链接,页码使用 {page} 占位$template string 模板void
生成PNG格式的二维码图片
QrcodeUtil::png( $content, $size )
$content string 二维码内容$size integer 大小,默认200string 图片二进制串生成二维码Base64串
QrcodeUtil::pngBase64String( $content, $size )
$content string 二维码内容$size integer 大小,默认200string 二维码Base64字符串代码示例
// 返回 data:image/png;base64,xxxxxxxx
QrcodeUtil::pngBase64String('http://www.xxx.com')
RandomUtil::number( $length )
$length integer 长度string 字符串RandomUtil::string( $length )
$length integer 长度string 字符串去掉0、O等相似字符
RandomUtil::readableString( $length )
$length integer 长度string 字符串RandomUtil::lowerReadableString( $length )
$length integer 长度string 字符串RandomUtil::upperReadableString( $length )
$length integer 长度string 字符串RandomUtil::hexString( $length )
$length integer 长度string 字符串RandomUtil::lowerString( $length )
$length integer 长度string 字符串只包含字母
RandomUtil::lowerChar( $length )
$length integer 长度string 字符串只包含字母
RandomUtil::upperChar( $length )
$length integer 长度string 字符串RandomUtil::upperString( $length )
$length integer 长度string 字符串使用年月日构造
RandomUtil::uuid( )
string UUIDRandomUtil::percent( $value )
$value integer 概率值boolean 是否成功StrUtil::mbLimit( $text, $limit )
$text string 待裁剪字符串$limit integer 裁剪长度string
StrUtil::mbLimitChars( $text, $limit )
$text string 待裁剪字符串$limit integer 裁剪长度void
StrUtil::mbLength( $text )
$text string
integer
StrUtil::wordSplit( $content )
$content string 分词的内容array 分词结果ModStart\Core\Type\BaseType 是枚举类型接口,ModStart\Core\Type\TypeUtil 提供枚举类型工具方法。
定义一个枚举类型类:
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 => '已归档',
];
}
}
TypeUtil::getList( $typeClass )
$typeClass string 实现了 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',
]);
ModStart\Core\Util\EnvUtil
| 方法 | 描述 |
|---|---|
env($key, $default) |
获取环境变量值 |
isWin() |
是否为 Windows 系统 |
isMac() |
是否为 Mac 系统 |
isCli() |
是否为命令行模式 |
ModStart\Core\Util\CacheUtil
| 方法 | 描述 |
|---|---|
get($key, $default) |
获取缓存 |
put($key, $value, $minutes) |
写入缓存 |
forget($key) |
删除缓存 |
remember($key, $minutes, $callback) |
记住缓存结果 |
ModStart\Core\Util\LogUtil
| 方法 | 描述 |
|---|---|
info($tag, $data) |
记录信息日志 |
error($tag, $data) |
记录错误日志 |
withTime($content) |
在内容前添加时间戳 |
ModStart\Core\Util\SessionUtil
| 方法 | 描述 |
|---|---|
put($key, $value) |
写入 Session |
get($key, $default) |
读取 Session |
forget($key) |
删除 Session |
flash($key, $value) |
闪存数据(仅下次请求有效) |
ModStart\Core\Util\RouteUtil
| 方法 | 描述 |
|---|---|
moduleActionUrl($name, $parameters) |
生成模块操作 URL |
moduleActionUrlSafe($name, $parameters) |
安全生成模块操作 URL |
ModStart\Core\Util\ConvertUtil
| 方法 | 描述 |
|---|---|
toBoolean($value) |
转换为布尔值 |
toInteger($value) |
转换为整数 |
toString($value) |
转换为字符串 |
toArray($value) |
转换为数组 |
nullable($value) |
空值转 null |
ModStart\Core\Util\FormatUtil
| 方法 | 描述 |
|---|---|
percent($value, $total) |
计算百分比 |
secondsToString($seconds) |
秒数转可读时间 |
ModStart\Core\Util\TimeUtil
| 方法 | 描述 |
|---|---|
now() |
获取当前时间字符串 |
today() |
获取今天日期 |
isTimestamp($value) |
判断是否为时间戳 |
humanReadable($timestamp) |
人性化时间显示(如"3分钟前") |
ModStart\Core\Util\CurlUtil
| 方法 | 描述 |
|---|---|
get($url, $param) |
GET 请求 |
post($url, $param) |
POST 请求(form 方式) |
postJSON($url, $param) |
POST JSON 请求 |
postRaw($url, $body) |
POST 原始数据 |
ModStart\Core\Util\HtmlUtil
| 方法 | 描述 |
|---|---|
text($html) |
HTML 转纯文本 |
limit($html, $length) |
截取 HTML 内容 |
stripTags($html) |
去除 HTML 标签 |
ModStart\Core\Util\SecureUtil
| 方法 | 描述 |
|---|---|
md5($str) |
MD5 加密 |
passwordHash($password) |
密码哈希 |
passwordVerify($password, $hash) |
验证密码哈希 |
randomString($length) |
生成安全随机字符串 |
ModStart\Core\Util\IpUtil
| 方法 | 描述 |
|---|---|
get() |
获取客户端 IP 地址 |
isIp($ip) |
判断是否为有效 IP |
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,默认为 0Collection 返回带有 _level 属性的集合