1.9 KiB
1.9 KiB
LaraBlog 架构与开发思想
目标
把 sablog 内容与 SEO 权重迁到现代 Laravel 栈:不克隆过时能力(Trackback/WAP/旧 Admin),用主题/插件/对象存储/AI 队列替换。
分层
HTTP (legacy .shtml + /admin Filament + /api/v1)
→ Controllers / Filament Pages
→ Domain (Blog / Media / Theme / Plugin / Seo / Ai)
→ Eloquent Models + Spatie Settings
→ S3 disk / Redis queues / Workerman
关键约定
| 区域 | 路径 |
|---|---|
| Legacy 前台 URL | routes/legacy.php |
| Web 辅助 | routes/web.php |
| JSON API(小程序/其他端) | routes/api.php → /api/v1/* |
| 领域逻辑 | app/Domain/* |
| 主题 | themes/{slug}/ |
| 插件 | plugins/{vendor}/{name}/ |
| 规格 | docs/specs/larablog-platform/ |
| 安装 / 导入 / 部署 | docs/ops/install.md、import.md、deploy.md |
| OpenAPI | docs/api/openapi.yaml |
开发模式
- 规格先行:非琐碎功能写 SPEC / CHECKLIST / TESTPLAN
- 兼容优先:文章/分类 ID、
.shtml内容 URL 保持可达 - 引用不写死 CDN:正文存
[attach=id]/attach:id,渲染期转/attachment.php?id= - 异步 AI:Web 不阻塞 LLM;队列 / Workerman 消费
- 默认中文:
APP_LOCALE=zh_CN,文案走lang/zh_CN/* - 测试:PHPUnit Feature sqlite
:memory:(见phpunit.xml);CI 同配置
PHP / 代码风格
- 目标运行时:PHP 8.2+(
composer.json) - 应用代码逐步统一
declare(strict_types=1); - 类型提示、返回类型、枚举优先;避免软依赖全局状态
一期 vs 二期
- 一期已做:核心博客、主题引擎、插件框架、SEO/GEO、导入、AI stub 管道、前台皮肤、后台 Filament
- 一期骨架:支付 / 会员 / 双商城(非真实结算)
- 二期:自动配图、真实支付会员、小程序完整写接口与鉴权深化