4.10. PHP工具类

未匹配的标注

PHP工具类

全局函数

modstart_version MSCore版本

获取MSCore版本

modstart_version( )

  • 返回:string 版本号

modstart_admin_url Admin路径

生成Admin的路径,自动加前缀

modstart_admin_url( string, array )

  • 参数:string $url 路径
  • 参数:array $param 参数
  • 返回:void 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 生成完整的Web路径

modstart_web_full_url( string, array )

  • 参数:string $url 路径
  • 参数:array $param 参数
  • 返回:void string

代码示例

// 返回 http://www.example.com/aaa/bbb
modstart_web_url('aaa/bbb')
// 返回 http://www.example.com/aaa/bbb?x=y
modstart_web_url('aaa/bbb',['x'=>'y'])

modstart_web_url Web路径

生成Web的路径,自动加前缀

modstart_web_url( string, array )

  • 参数:string $url 路径
  • 参数:array $param 参数
  • 返回:void string

代码示例

// 返回 /aaa/bbb
modstart_web_url('aaa/bbb')
// 返回 /aaa/bbb?x=y
modstart_web_url('aaa/bbb',['x'=>'y'])

modstart_api_url Api路径

生成Api的路径,自动加前缀

modstart_api_url( string, array )

  • 参数:string $url 路径
  • 参数:array $param 参数
  • 返回:void string

代码示例

// 返回 /api/aaa/bbb
modstart_api_url('aaa/bbb')
// 返回 /api/aaa/bbb?x=y
modstart_api_url('aaa/bbb',['x'=>'y'])

modstart_config 获取配置

用于获取表 config 中的配置选项

modstart_config( $key, $default, $useCache )

  • 参数:$key string 配置名称
  • 参数:$default any|string 默认值
  • 参数:$useCache boolean 启用缓存,默认为true
  • 返回:any|string|\ModStart\Core\Config\MConfig 返回配置值或配置对象

代码示例

// 网站名称
modstart_config('siteName');
// 获取一个配置数组,数组需存储成 json 格式
modstart_config()->getArray('xxx')
// 设置配置项
modstart_config()->set('xxx','aaa')

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')

L 多语言

获取多语言翻译

L( $name, ...$params )

  • 参数:$name string 多语言
  • 参数:...$params any 多语言参数
  • 返回:string 多语言翻译

代码示例

// 返回 消息
L('Message');
// 返回 文件最大为10M
L('File Size Limit %s','10M');

数据库 ModelUtil

model 构建模型

ModelUtil::model( $model )

  • 参数:$model string 数据表
  • 返回:Model 数据库模型

代码示例

// 按条件查询
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();
// 原生SQL
ModelUtil::model('user')->whereRaw(DB::raw('id > 0 OR id is null'))->get()->toArray();

insert 插入数据

ModelUtil::insert( $model, $data )

  • 参数:$model string 数据表
  • 参数:$data array 数据数组
  • 返回:array 插入的数据记录

代码示例

ModelUtil::insert('user',['username'=>'aaa','nickname'=>'bbb']);

insertAll 插入多条数据

ModelUtil::insertAll( $model, $datas, $updateTimestamp )

  • 参数:$model string 数据表
  • 参数:$datas 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']);

update 更新数据表

ModelUtil::update( $model, $where, $data )

  • 参数:$model string 数据库
  • 参数:$where int|array 更新条件
  • 参数:$data array 更新的数据数组
  • 返回:int|null 返回更新的数量,如果是0或null表示没有更新数据

代码示例

ModelUtil::update('user',1,['password'=>'123456']);
ModelUtil::update('user',['username'=>'xxx'],['password'=>'123456']);

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']);

事件操作 EventUtil

fire 触发一个Laravel事件,兼容了不同版本

EventUtil::fire( $event )

  • 参数:$event object
  • 返回:void

文件 FileUtil

mime 根据文件后缀获取MIME类型字符串

FileUtil::mime( $ext )

  • 参数:$ext string 文件后缀
  • 返回:void string|null

write 写入文件

FileUtil::write( $path, $content )

  • 参数:$path string
  • 参数:$content string
  • 返回:void

extension 获取文件后缀

FileUtil::extension( $pathname )

  • 参数:$pathname string 文件路径
  • 返回:void string

listAllFiles 递归列出目录所有文件

FileUtil::listAllFiles( $dir, $filter )

  • 参数:$dir string 目录
  • 参数:$filter Closure 过滤器,为空表示不过滤
  • 返回:void array

listFiles 列出目录所有文件

FileUtil::listFiles( $filename, $pattern )

  • 参数:$filename string
  • 参数:$pattern string 后缀过滤,如 *.txt *.php 等
  • 返回:void array

formatByte 格式化字节

FileUtil::formatByte( $bytes, $decimals )

  • 参数:$bytes integer 字节数
  • 参数:$decimals integer 小数最多保留位数,默认为2
  • 返回:void string

代码示例

// 返回 1 MB
FileUtil::formatByte(1024*1024)
// 返回 1.5 GB
FileUtil::formatByte(1024*1024*1024*1.5)

formatByteSimple 格式化字节(简化)

FileUtil::formatByteSimple( $bytes, $decimals )

  • 参数:$bytes integer 字节数
  • 参数:$decimals integer 小数最多保留位数,默认为2
  • 返回:void string

代码示例

// 返回 1 M
FileUtil::formatByte(1024*1024)
// 返回 1.5 G
FileUtil::formatByte(1024*1024*1024*1.5)

formattedSizeToBytes 格式化的文件大小转换为字节

FileUtil::formattedSizeToBytes( $sizeString )

  • 参数:$sizeString string 如 1M
  • 返回:void int

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 是否删除本身
  • 返回:void bool

ID生成 IdUtil

generate 带前缀的ID

一般用于页面渲染时页面元素唯一ID

IdUtil::generate( string )

  • 参数:string $group
  • 返回:string 生成的ID字符串

代码示例

// 将生成 Aaa_1 Aaa_2 Aaa_3
IdUtil::generate('Aaa')

next64BitId 获取64位ID

IdUtil::next64BitId( )

  • 返回:string ID字符串

generateSN 生成订单号

一个19位长的(BigInteger)

IdUtil::generateSN( )

  • 返回:void string

代码示例

// 生成 20210101010101+12121
IdUtil::generateSN()

分页渲染工具 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 )

  • 参数:$total integer 总记录数
  • 参数:$pageSize integer 每页记录数
  • 参数:$currentPage integer 当前页
  • 参数:$url string 分页链接,页码使用 {page} 占位
  • 返回: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')

随机字符串 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

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~