AdminFramework Helper
AdminFramework Helper 是一套功能丰富的 PHP 助手类库,提供了各种常用功能的封装,旨在提高开发效率和代码质量。
功能特性
- 加密解密:AES、RSA 加密解密,确保数据安全
- 数组处理:数组转树结构、数组操作等
- 文件操作:文件上传、下载、目录操作、ZIP 压缩等
- 网络请求:CURL 请求封装,支持各种 HTTP 方法
- 时间处理:时间格式化、时区转换等
- 字符串处理:随机字符串生成、字符串格式化等
- 对象操作:对象属性操作等
- 雪花算法:分布式唯一 ID 生成
- Redis 操作:Redis 客户端封装
- Google 验证码:Google Authenticator 集成
- HTML 处理:HTML 标签处理
- 属性操作:动态属性设置和获取
- 结果封装:统一的 API 响应格式
安装
使用 Composer 安装:
composer require admin-framework/helper
助手类列表
1. Aes - AES 加密助手
提供 AES 加密和解密功能,支持多种加密模式。
主要方法:
encrypt($string): 加密字符串
decrypt($string): 解密字符串
setKey($key): 设置加密密钥
setMethod($method): 设置加密方法
示例:
use AdminFramework\Helper\Aes;
$aes = Aes::factory()->setKey('your-secret-key');
$encrypted = $aes->encrypt('Hello World');
$decrypted = $aes->decrypt($encrypted);
2. Arr - 数组助手
提供数组操作和转换功能,特别是数组转树结构。
主要方法:
tree($data, $parentId = null, $dataProcessing = null, $treeKey = 'children', $idKey = 'id', $parentKey = 'parent_id'): 数组转树结构
navOption($data, $parentId = 0, $p = 0, $parentIdKey = 'parent_id', $idKey = 'id', $titleKey = 'title'): 数组转换为选项列表
示例:
use AdminFramework\Helper\Arr;
$data = [
['id' => 1, 'name' => 'Item 1', 'parent_id' => 0],
['id' => 2, 'name' => 'Item 2', 'parent_id' => 1],
];
$tree = Arr::factory()->tree($data);
$options = Arr::factory()->navOption($data);
3. Curl - 网络请求助手
封装了 CURL 功能,支持各种 HTTP 请求方法。
主要方法:
get($url, $params = []): GET 请求
post($url, $params = []): POST 请求
put($url, $params = []): PUT 请求
delete($url, $params = []): DELETE 请求
示例:
use AdminFramework\Helper\Curl;
$curl = Curl::factory();
$response = $curl->get('https://api.example.com/users');
4. File - 文件助手
提供文件和目录操作功能。
主要方法:
getDirFiles($dir, $recursive = false): 获取指定目录内的目录和文件
createDir($path, $mode = 0777, $recursive = true): 创建目录
deleteDir($dir, $deleteSelf = true): 删除目录
createFile($filename, $data = '', $overWrite = false): 创建文件
copy($src, $dst): 复制文件或目录
move($old, $new): 移动文件或目录
formatSizeUnits($bytes): 文件大小格式化
zip($dir, $zipName): 压缩目录
readCsv($filename, $hasHeader = true, $delimiter = ',', $enclosure = '"', $escape = '\\'): 使用yield读取CSV文件
fileStrReplace($content, $attr = [], $separator = '#'): 文件内容替换
示例:
use AdminFramework\Helper\File;
$file = File::factory();
$file->createDir('/path/to/dir');
$file->createFile('/path/to/file.txt', 'Hello World');
$zipPath = $file->zip('/path/to/dir', '/path/to/archive.zip');
5. Rsa - RSA 加密助手
提供 RSA 密钥生成、加密解密和签名验证功能。
主要方法:
generateKeyPair($config = []): 生成 RSA 密钥对
publicEncrypt($string): 公钥加密
privateDecrypt($string): 私钥解密
sign($data): 私钥签名
verify($data, $signature): 公钥验证签名
示例:
use AdminFramework\Helper\Rsa;
$rsa = Rsa::factory();
$keyPair = $rsa->generateKeyPair();
$encrypted = $rsa->publicEncrypt('Hello World');
$decrypted = $rsa->privateDecrypt($encrypted);
6. Time - 时间助手
提供时间格式化和时区转换功能。
主要方法:
setTimezone($timezone): 设置时区
format($format): 格式化时间
add($interval): 增加时间
sub($interval): 减少时间
示例:
use AdminFramework\Helper\Time;
$time = Time::factory()->setTimezone('Asia/Shanghai');
$formatted = $time->format('Y-m-d H:i:s');
7. Str - 字符串助手
提供字符串操作和处理功能。
主要方法:
random($length = 10, $options = []): 生成随机字符串
camelCase($str, $delimiter = '_', $ucFirst = true): 转换字符串为驼峰式
unCamelCase($str, $delimiter = '_'): 转换驼峰式为指定分隔符格式
mask($str, $start = 3, $length = 4, $mask = '*'): 隐藏部分字符串(常用数据脱敏)
limit($str, $limit = 100, $end = '...'): 限制字符串长度并在超出时添加后缀
title($value): 转为首字母大写的标题格式
str_starts_with($haystack, $needle): 判断字符串是否以指定前缀开头
示例:
use AdminFramework\Helper\Str;
$str = Str::factory();
$random = $str->random(16, ['symbols' => true]);
$camelCase = Str::camelCase('hello_world');
$masked = Str::mask('13800138000', 3, 4);
8. Snowflake - 雪花算法助手
提供分布式唯一 ID 生成功能。
主要方法:
示例:
use AdminFramework\Helper\Snowflake;
$snowflake = Snowflake::factory();
$id = $snowflake->id();
9. Redis - Redis 助手
封装了 Redis 客户端功能。
主要方法:
set($key, $value, $expire = null): 设置键值对
get($key): 获取键值
del($key): 删除键
incr($key): 自增
示例:
use AdminFramework\Helper\Redis;
$redis = Redis::factory()->connect('localhost', 6379);
$redis->set('name', 'AdminFramework');
$name = $redis->get('name');
10. GoogleAuthenticator - Google 验证码助手
提供 Google Authenticator 集成功能。
主要方法:
createSecret(): 创建密钥
getQRCodeUrl($name, $secret): 获取二维码 URL
verifyCode($secret, $code): 验证验证码
示例:
use AdminFramework\Helper\GoogleAuthenticator;
$ga = GoogleAuthenticator::factory();
$secret = $ga->createSecret();
$qrcodeUrl = $ga->getQRCodeUrl('User', $secret);
$isValid = $ga->verifyCode($secret, '123456');
11. Html - HTML 助手
提供 HTML 标签处理功能。
主要方法:
stripTags($html, $allowed = ''): 去除 HTML 标签
entities($string): 转义 HTML 实体
decodeEntities($string): 解码 HTML 实体
示例:
use AdminFramework\Helper\Html;
$html = Html::factory();
$clean = $html->stripTags('<p>Hello <b>World</b></p>', '<b>');
12. Obj - 对象助手
提供对象操作功能。
主要方法:
toArray($object): 对象转数组
toJson($object): 对象转 JSON
getProperty($object, $property): 获取对象属性
示例:
use AdminFramework\Helper\Obj;
$obj = Obj::factory();
$array = $obj->toArray($stdObject);
$json = $obj->toJson($stdObject);
13. Attribute - 属性助手
提供动态属性设置和获取功能。
主要方法:
setAttribute($name, $value): 设置属性
getAttribute($name): 获取属性
hasAttribute($name): 检查属性是否存在
示例:
use AdminFramework\Helper\Attribute;
$attr = Attribute::factory();
$attr->setAttribute('name', 'AdminFramework');
$name = $attr->getAttribute('name');
14. Result - 结果助手
提供统一的 API 响应格式。
主要方法:
success($data = []): 成功响应
error($message = '', $code = 0): 错误响应
setCode($code): 设置响应码
setMessage($message): 设置响应消息
示例:
use AdminFramework\Helper\Result;
$result = Result::factory();
$response = $result->success(['data' => 'Hello World']);
使用工厂模式
所有助手类都支持工厂模式创建实例:
use AdminFramework\Helper\Str;
$str = Str::factory();
$result = $str->random(10)->upper();
贡献
欢迎提交 Issue 和 Pull Request!
许可证
Apache License 2.0