本文目录 4 节
在很多技术讨论里,PHP 似乎总是被当作“上一个时代”的选择。但如果你要做的是一款部署在普通虚拟主机、由个人长期维护的内容系统,它依然是非常务实的基础设施。
薄框架,不等于没有结构#
不使用 Laravel 这样的全栈框架,并不意味着把代码都写进一个 index.php。相反,越小的系统,越需要清楚的分层:
- 入口层:负责路由、会话、错误处理。
- 领域层:文章、分类、评论、媒体,各自拥有明确的职责。
- 接口层:后台通过 JSON API 与前端交互,而不是直接渲染页面。
- 呈现层:前台主题与后台界面彼此独立。
这样的结构没有魔法,但每一层都可以被单独理解和替换。
兼容 PHP 7.4 的几个细节#
宝塔面板上仍有大量 PHP 7.4 环境。为了保证兼容,需要刻意避开一些新语法:
- 不使用
match、构造器属性提升、str_contains; - 不依赖枚举与只读属性;
- 对
PDO的返回类型保持宽容,因为不同驱动可能返回字符串; - 时间计算尽量交给 PHP,而不是数据库方言函数。
兼容性不是保守,而是对部署环境的尊重。
数据库只做它擅长的事#
内容系统的大部分查询都很简单。真正需要小心的是分页、搜索与关联数据:
- 分页参数必须强制转为整数,避免把用户输入拼进 SQL;
- 标签、分类使用关联表,避免在文章表里存逗号分隔的 ID;
- 列表页一次性取回标签,避免 N+1 查询;
- 所有写入使用预处理语句,并统一时间格式。
安全是默认值#
后台登录、CSRF、上传校验、输出转义,这些不应该等到上线前才补。把它们做成基础设施的一部分,后续每加一个功能,都会自然继承这些保护。
轻量不是省掉安全,而是让安全足够简单,简单到不会忘记。
本文采用「署名—非商业性使用 4.0 国际」许可协议。
全部评论
COMMENTS / 0还没有评论。你可以成为第一个留下想法的人。