请求如何被 Bootstrap 派发?PSR-4 自动加载如何手写?数据库方言如何抽象?本文拆解 AidoSaaS-CMS 的运行时链路与设计取舍。
AidoSaaS-CMS 的架构可以用一句话概括:用最少的依赖,把「请求派发 / 内容建模 / 安全输出」三件事做扎实。下面按运行时链路拆开看。
请求链路
入口 index.php 加载 Bootstrap,由 Bootstrap::run() 解析 URI、匹配路由并把请求派发到对应控制器或主题模板。所有未知路径都回落到统一派发器,因此伪静态只需一条 try_files 即可。


自动加载
采用手写 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 方言。



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