Releases: zxc7563598/php-tools
Releases · zxc7563598/php-tools
v2.2.1
v2.2.0
增加新的包:
包名 | 简介 |
---|---|
hejunjie/address-parser |
收货地址智能解析工具,支持从非结构化文本中提取用户/地址信息 |
hejunjie/url-signer |
URL 签名工具,支持对 URL 进行签名和验证。 |
hejunjie/google-authenticator |
Google Authenticator 及类似应用的密钥生成、二维码创建和 OTP 验证。 |
hejunjie/simple-rule-engine |
一个轻量、易用的 PHP 规则引擎,支持多条件组合、动态规则执行。 |
v2.1.0
更新内容:
增加了 hejunjie/address-parser
包:收货地址智能解析工具,支持从非结构化文本中提取用户/地址信息
v2.0.0
这是 hejunjie/tools 的一次重大结构调整版本。
🎯 主要变更:
- 拆分为五个独立模块(Composer 包):
- hejunjie/cache
- hejunjie/china-division
- hejunjie/error-log
- hejunjie/mobile-locator
- hejunjie/utils
- 本包本身不再包含逻辑代码,仅作为集合入口统一依赖这些工具包。
- 如需按需引用,请直接安装对应子包(如
composer require hejunjie/cache
)。 - 如需继续一站式使用,安装本包依然可获得原先所有功能。
v1.1.0
版本: v1.1.0
发布日期: 2025-03-21
新增内容
多层缓存删除操作
多层缓存增加 del
方法用于删除 key
v1.0.8
版本: v1.0.8
发布日期: 2025-03-13
新增内容
日志记录
不同框架通常自带日志系统,但要么强绑定到框架,更换框架就要重构日志方案,要么像 Monolog 这类强大的日志系统功能过于庞大。而为了在不同框架中保持通用性,同时避免过度复杂,我基于责任链模式实现了一个轻量级的日志模块
使用方法:
<?php
$log = new \Hejunjie\Tools\Log\Logger([
new \Hejunjie\Tools\Log\Handlers\ConsoleHandler(), // 打印到控制台
new \Hejunjie\Tools\Log\Handlers\FileHandler('日志存储文件夹路径'), // 存储到文件
new \Hejunjie\Tools\Log\Handlers\RemoteApiHandler('请求url') // 发送到某个地址
]);
$log->info('标题','内容',['上下文']); // INFO 级
$log->warning('标题','内容',['上下文']); // WARNING 级
$log->error('标题','内容',['上下文']); // ERROR 级
$log->log('自定义级别','标题','内容',['上下文']);
以及:如果有其他的拓展需要可以自行实现,实现 \Hejunjie\Tools\Log\LogHandlerInterface
即可
v1.0.7
版本: v1.0.7
发布日期: 2025-03-12
新增内容
多级缓存
注意:为了拓展方便,代码仅仅实现了缓存层(内存/redis/文件),实际应用场景中建议自行完善数据层,大概代码如下所示
<?php
// 自定义数据源 - 数据库层
class UserDataSource implements \Hejunjie\Tools\Cache\Interfaces\DataSourceInterface
{
// 构造函数,如果是最后一层则不需要构造函数
// public function __construct(
// DataSourceInterface $wrapped
// ) {
// parent::__construct($wrapped);
// }
public function get(string $key): ?string
{
// 根据 key 在数据库中获取对应内容
// 返回内容字符串 `string`
// 如果下一层返回数据,则在当前层存储。如果是最后一层则不需要下列代码
// $content = $this->wrapped->get($key);
// if ($content !== null) {
// $this->set($key, $content);
// }
// return $content;
}
public function set(string $key, string $value): bool
{
// 根据 key 在数据库中存储 value
// 返回存储结果 `bool`
}
}
实际使用方法:
<?php
use Hejunjie\Tools\Cache\Decorators;
// 构建缓存链:内存 → Redis → 文件 → 自定义数据源
$cache = new Decorators\MemoryCache(
new Decorators\RedisCache(
new Decorators\FileCache(
new UserDataSource(
... // 可以继续套娃
),
'[文件]缓存文件夹路径',
'[文件]缓存时长(秒)'
),
'[redis]配置'
'[redis]前缀'
'[redis]是否持久化链接'
),
'[内存]缓存时长(秒)',
'[内存]缓存数量(防止内存溢出)'
);
// 获取数据
$data = $cache->get('key')
// 存储数据
$data = $cache->set('key','value')
存储层 | 数据保留时间 |
---|---|
[内存] MemoryCache | 进程生命周期(脚本结束即消失) |
[redis] RedisCache | 根据配置的TTL(默认1小时) |
[文件] FileCache | 文件系统保留,直到过期或手动删除 |
[数据库] UserDataSource | 用户自行实现 |
v1.0.6
不重要的调整
v1.0.5
版本: v1.0.5
发布日期: 2024-12-15
变更内容
- 增加了字符串操作 补充特定字符串,使其达到指定长度 方法
- 增加了字符串操作 替换字符串中第一次出现的搜索值 方法
- 优化了图片操作 将 Base64 字符串保存为图片 方法
v1.0.4
版本: v1.0.4
发布日期: 2024-12-02
变更内容
- 增加了文件操作 获取文件中的唯一行(去重) 方法
- 增加了文件操作 从多个文件中获取交集行 方法
- 增加了文件操作 从多个csv文件中快速提取列 方法