概述
SnowflakeFacade 提供了基于雪花算法的分布式唯一ID生成功能,基于 godruoyi/php-snowflake 库实现。雪花算法生成的ID是递增的、唯一的、有序的,非常适合用于用户ID、订单ID等场景。
特性
- ✅ 全局唯一: 在分布式系统中保证ID唯一性
- ✅ 时间有序: ID按时间递增,便于排序
- ✅ 高性能: 本地生成,无需网络请求
- ✅ 可配置: 支持自定义机器ID和起始时间
- ✅ 无依赖: 不依赖外部配置文件或环境变量
2026/1/14大约 9 分钟
SnowflakeFacade 提供了基于雪花算法的分布式唯一ID生成功能,基于 godruoyi/php-snowflake 库实现。雪花算法生成的ID是递增的、唯一的、有序的,非常适合用于用户ID、订单ID等场景。
可以使用以下几种方式调用生成命令:
youhujun 前缀 (推荐)php youhujun make:facade <路径> [描述]
php youhujun make:service <路径> [描述]
php youhujun call:facade <路径> [描述]
CommonException 是一个通用的业务异常类,用于在应用程序中表示预期的业务逻辑错误。抛出异常时返回标准格式的数组:
[
'code' => 错误码,
'error' => 错误标识,
'msg' => 错误信息
]
CalendarFacade 提供了农历和阳历日期的相互转换功能。
use YouHuJun\Tool\App\Facade\V1\Calendar\CalendarFacade;
// 将农历 2023年11月25日 转换为阳历
$solar = CalendarFacade::lunarToSolar(2023, 11, 25);
// 返回: [2024, 1, 6] (2024年1月6日)
echo $solar[0] . '-' . $solar[1] . '-' . $solar[2];
ExcelFacade 提供了Excel文件的导入导出功能,基于 PhpSpreadsheet 库实现。
use YouHuJun\Tool\App\Facade\V1\Excel\ExcelFacade;
// 准备数据
$column = [['姓名', '年龄', '性别']];
$data = [
['张三', 20, '男'],
['李四', 25, '女'],
['王五', 30, '男']
];
// 导出到文件
ExcelFacade::exportExcelData(
$column, // 列名
$data, // 数据
'用户列表', // 文件标题
storage_path('app/excel') // 保存路径
);
抖音登录服务提供了抖音小游戏和抖音小程序的登录功能,通过 code 换取 openid 和 session_key。
use YouHuJun\Tool\App\Facade\V1\DouYin\Login\DouYinLoginFacade;
QrcodeFacade 是二维码生成服务的静态门面类,提供了灵活的二维码生成功能,支持多种输出模式和自定义配置。使用静态代理模式调用,简单便捷。
$config - 配置参数$config = [
'logoPath' => '/path/to/logo.png', // 可选: Logo图片路径
'noticeInfo' => '扫码关注', // 可选: 二维码下方提示文字,默认"二维码"
'qrcodePath' => '/path/to/save/qrcode.png', // 可选: 保存路径(mode=1时必填)
'size' => 300, // 可选: 二维码尺寸,默认300
'margin' => 10, // 可选: 二维码边距,默认10
'logoResizeToWidth' => 50, // 可选: Logo宽度,默认50
];
七牛云存储服务提供了文件上传、删除、获取文件信息和下载链接生成等功能。
本服务依赖七牛云官方SDK:
composer require qiniu/php-sdk
TencentSMSFacade 是腾讯云短信服务的静态门面类,提供了发送短信验证码的功能。使用静态代理模式调用,简单便捷。
发送短信时需要传入两个参数数组:
$config - 腾讯云基础配置$config = [
'secretId' => 'your_secret_id', // 腾讯云SecretId
'secretKey' => 'your_secret_key', // 腾讯云SecretKey
'smsApConfig' => 'ap-guangzhou', // 地域配置,如: ap-guangzhou
'smsSdkAppId' => '1400787878', // 短信应用ID
'signName' => '你的签名', // 短信签名
'templateId' => '1882890', // 短信模板ID
'phonePre' => '+86', // 手机号前缀
];
TencentMapFacade 提供了腾讯地图相关的功能封装,包括逆地理编码、地理编码、距离计算等功能。
$config = [
'key' => 'YOUR_TENCENT_MAP_KEY', // 腾讯地图Key
'regionUrl' => 'https://apis.map.qq.com/ws/geocoder/v1', // 逆地理编码API地址
'geocoderUrl' => 'https://apis.map.qq.com/ws/geocoder/v1', // 地理编码API地址
'distanceUrl' => 'https://apis.map.qq.com/ws/distance/v1' // 距离计算API地址
];