Tag:php
All the articles with the tag "php".
- 0x17//后端实践
优惠码批量生成系统的设计:Stripe Promotion Codes + 自建管理层
在 Stripe Checkout 基础上构建优惠码批量管理系统:批次管理、三档折扣、带前缀的编码规则、一键导出 CSV,以及设计过程中"哪些功能留给 Stripe,哪些自己做"的边界决策。
- 0x16//后端实践
库存可用量计算重构:把散落的硬编码公式收敛为一句话
记录一次 WMS 系统中库存可用量计算公式的重构:从 22 处散落的硬编码逻辑收敛为可配置的业务规则,让"预留量是否参与可用量计算"成为客户级别的开关。
- 0x13//后端实践
无框架 PHP 项目的渐进式工程化改造
记录如何将一个扁平结构的 PHP 营销站点改造为具有 Composer 自动加载、PSR-4 命名空间、public/ 入口隔离和视图层的工程化项目,而不引入重量级框架。
- 0x11//工具设计
「未实现」还是「不实现」:PPS 脚手架的设计选择
PPS 是一个 PHP 脚手架工具,它不做占位符替换、不创建代码目录、在构造函数里做 I/O。当 AI 把这五个设计点列为 bug 时,我才意识到——这些选择不是没有理由的,但如果不把理由写出来,别人就会用自己的框架来评判。
- 0x10//工具设计
全量 Vendor Rebrand:9 个 PHP 包从 hizpark 到 changhorizon 的实践记录
记录一次完整的 PHP 包生态 vendor 切换过程:9 个已发布包、跨包依赖、命名空间变更、CI 适配、版本号策略——以及关于 composer.lock 和脚手架设计哲学的思考。
- 0x0f//后端实践
mPDF 6.0 动态图片渲染踩坑:当 base64、PNG、绝对路径全都失效
在 PHP 5.6 遗留系统中用 mPDF 6.0 生成含动态签名图片的工单 PDF。本以为 base64 data URI 或绝对路径就能解决,结果 PNG 在 mPDF 中怎么都渲染不出来。本文记录四种方案的完整排查过程和最终解决方案。
- 0x0e//后端实践
在 PHP 5.6 遗留系统中设计 Shopify 模块:架构取舍
在 PHP 5.6、无框架、无 Composer 的老旧 WMS 中设计一个多层架构的 Shopify 集成模块。本文记录分层设计、GraphQL 集成、多店铺 OAuth 等关键决策背后的取舍逻辑。
- 0x0d//后端实践
工单系统的重生:从 Demo 到 WMS 集成
一个 5 字段的 stub 表单如何通过完整设计重构为可用的工单系统?记录从 Demo 前端到旧系统后端的架构适配全过程,包括数据库规范化、替换决策和 PHP 5.6 下的技术约束。
- 0x0b//后端实践
三层防御:设计安全的危险操作
一个删除按钮引发的思考——Controller 校验、Repository SQL 保护、DB 约束兜底,三层防御模式让"手滑"不会变成"灾难"。
- 0x07//后端实践
从单体到管道:解耦订单同步与发货单创建
一个 PHP 5.6 遗留系统中,如何将一条 600 行的同步脚本拆解为两个独立步骤,以及为什么这次解耦暴露了三个原本被掩盖的 P0 级安全问题。