跳到主要内容
AidoSaaS-CMS 企业主题 · 全站可视化编辑 订阅 站点地图

AidoSaaS-CMS 技术架构:原生 PHP 8 + MySQL/SQLite 双方言

AidoSaaS-CMS 技术架构:原生 PHP 8 + MySQL/SQLite 双方言

请求如何被 Bootstrap 派发?PSR-4 自动加载如何手写?数据库方言如何抽象?本文拆解 AidoSaaS-CMS 的运行时链路与设计取舍。

AidoSaaS-CMS 的架构可以用一句话概括:用最少的依赖,把「请求派发 / 内容建模 / 安全输出」三件事做扎实。下面按运行时链路拆开看。

请求链路

入口 index.php 加载 Bootstrap,由 Bootstrap::run() 解析 URI、匹配路由并把请求派发到对应控制器或主题模板。所有未知路径都回落到统一派发器,因此伪静态只需一条 try_files 即可。

请求派发链路
占位图:从 index.php 到 Bootstrap::run 的请求派发链路
目录结构与请求生命周期对照
占位图:目录结构与请求生命周期对照

自动加载

采用手写 PSR-4 自动加载器(Autoload::register()),按命名空间前缀映射到 src/ 目录。没有 Composer 也能精确加载,且加载规则可读、可审计。

数据访问与方言抽象

业务查询收敛到 PostRepository / TermRepository / CommentRepository 等 Repository 层,SQL 构造按驱动(MySQL / SQLite)抽象。安装时选定方言,后续业务代码无需关心底层差异。

AI 原生发布管线

文章落库时,内核同步生成:结构化数据 JSON-LD(供搜索引擎与知识图谱)、机器可读 JSON(供生成式引擎抓取)、LLM 摘要。三者基于同一份源数据,不会因补跑脚本而漂移——这就是「发布即合规」。

安全输出层

模板输出统一经过转义助手(esc_html / esc_attr / esc_url),配合 CSP / Referrer-Policy 响应头与评论同源校验,把 XSS 与跨站风险挡在渲染层之外。

常见问题

为什么不用现成框架?

为了共享主机可装。框架会引入 Composer 与构建前置,违背「解压即用」第一性原则。

双数据库方言怎么做的?

数据访问收敛到 Repository 层,SQL 构造按驱动抽象,安装时选定 MySQL 或 SQLite 方言。

分享

李文心

本文作者 · 发布于 2026-09-05

全部文章

评论 (0)

还没有评论,来抢沙发吧。