PHP 项目里,哪些功能让你一次次「重复造轮子」?
写 PHP 第 7 年了,我发现有些功能简直像韭菜——项目一换就得重新割一遍。
手机号归属地、参数校验、唯一 ID、地址解析……是不是你也写过不止一次?
有些功能不难,但就是麻烦:
-
做个小商城,要写个 促销规则引擎
-
做个 API,就得来一遍 参数验证器
-
做用户注册登录,要写个 TOTP 动态口令
-
做支付结算,要造个 唯一 ID 生成器
这些功能并不是多复杂的“高大上算法”,但就是又常见、又繁琐。
写一次没什么,写三次、五次之后,就很想骂人:怎么又是它?
我干脆自己写了一堆包
后来我干脆想:要不要把这些常见需求都封装成 Composer 包?
这样以后再遇到,直接 composer require 一下就完事。
于是就开始写,写着写着,现在已经攒了十多个通用组件:
-
php-wechat-bill-parser:微信账单解析器 - 支持压缩包密码自动解析与账单数据智能提取,适用于账单分析、自动化入账、个人理财工具开发等场景。
-
php-alipay-bill-parser:支付宝账单解析器 - 快速解析支付宝导出的账单 Excel/CSV 文件,便于数据统计、财务对账或个人收支分析。
-
php-utils:工具函数集合 - 提供常用的字符串、数组、日期、加密等工具函数,开箱即用,避免重复造轮子。
-
php-cache:多层缓存系统 - 封装文件、Redis、Memcached 等多级缓存方案,支持链式降级,提升系统性能与容错性。
-
php-china-division:行政区划解析 / 身份证归属地 - 内置中国最新行政区划数据,支持身份证省市区归属地识别。
-
php-error-log:多通道错误日志 - 支持文件、数据库、第三方服务(如 Sentry)的错误日志记录,便于排查与监控。
-
php-mobile-locator:手机号归属地查询 - 本地号段库,快速查询手机号的省份、城市及运营商,支持离线使用。
-
php-address-parser:收货地址解析 - 将用户输入的中文收货地址解析成省市区、街道、姓名、电话等结构化信息。
-
php-url-signer:签名链接工具 - 为 URL 生成带签名和过期时间的安全链接,常用于文件下载、临时授权等场景。
-
php-google-authenticator:TOTP 动态口令 - 兼容 Google Authenticator 的双因素认证实现,适用于后台管理与登录安全增强。
-
php-simple-rule-engine:轻量规则引擎 - 通过配置化的规则表达式,灵活实现业务条件判断,常用于活动、风控、审批流等场景。
-
php-fortune-analyzer:八字命理分析 - 提供传统命理排盘与八字分析的 PHP 实现,适合兴趣研究、排盘应用开发。
-
php-promotion-engine:促销策略引擎 - 支持满减、折扣、满赠等常见电商促销规则,方便快速搭建营销活动。
-
php-schema-validator:参数验证器 - 基于 JSON Schema 的参数验证工具,支持复杂数据结构校验,常用于 API 入参校验。
-
data-query-tool:数据查询与导出工具 - 封装 SQL 构造、查询、分页与数据导出(Excel/CSV),简化常见后台报表开发。
-
php-id-generator:唯一 ID 生成器 - 提供分布式唯一 ID 方案,支持雪花算法、UUID 等,适合高并发业务场景。
我也很好奇
因为最近不算忙,有空写点「工作之外」的代码,我也在想:
是不是很多人都和我一样,在项目里会遇到这些「小而琐碎」但重复出现的需求?
如果有,那完全可以继续写,顺手开源出来。
说不定下一个 composer 包,就能帮你省掉一堆时间。
想听听你的想法
所以我想问问大家:
在你的 PHP 项目里,有没有哪些功能让你觉得“怎么又得自己写一遍”?
欢迎在评论区或者私信里告诉我。
如果合适,我可以考虑做成通用包,开源出来。
最后,自我介绍一下 👋
我是一个写 PHP 多年的后端开发者,平时喜欢封装通用轮子。
上面这些组件,还有一些没列到的,都整理在我的 GitHub:zxc7563598。
如果你对我的项目感兴趣或者对我感兴趣想要我帮你写点什么,欢迎去看看,或者直接来找我聊聊。
说不定下一个包,就来自你的需求。

浙公网安备 33010602011771号