45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# 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` |
|
||
|
||
## 开发模式
|
||
1. **规格先行**:非琐碎功能写 SPEC / CHECKLIST / TESTPLAN
|
||
2. **兼容优先**:文章/分类 ID、`.shtml` 内容 URL 保持可达
|
||
3. **引用不写死 CDN**:正文存 `[attach=id]` / `attach:id`,渲染期转 `/attachment.php?id=`
|
||
4. **异步 AI**:Web 不阻塞 LLM;队列 / Workerman 消费
|
||
5. **默认中文**:`APP_LOCALE=zh_CN`,文案走 `lang/zh_CN/*`
|
||
6. **测试**:PHPUnit Feature sqlite `:memory:`(见 `phpunit.xml`);CI 同配置
|
||
|
||
## PHP / 代码风格
|
||
- 目标运行时:**PHP 8.2+**(`composer.json`)
|
||
- 应用代码逐步统一 `declare(strict_types=1);`
|
||
- 类型提示、返回类型、枚举优先;避免软依赖全局状态
|
||
|
||
## 一期 vs 二期
|
||
- **一期已做**:核心博客、主题引擎、插件框架、SEO/GEO、导入、AI stub 管道、前台皮肤、后台 Filament
|
||
- **一期骨架**:支付 / 会员 / 双商城(非真实结算)
|
||
- **二期**:自动配图、真实支付会员、小程序完整写接口与鉴权深化
|