更新日志 (Changelog)
本文档记录 MyBlog 项目的所有重要变更。
[2.1.0] - 2026-01-10
已完成 ✅
安全性修复
- ✅ 实现了
SecurityFilter类,提供 XSS 防护功能 - ✅ 实现了
PathValidator类,防止路径遍历攻击 - ✅ 实现了
InputValidator类,提供输入验证功能 - ✅ 实现了
CSRFProtection类,提供 CSRF 保护 - ✅ 在
BlogRenderer中配置了 Parsedown 安全模式 - ✅ 在
config.php中集成了路径验证
代码重构
- ✅ 引入命名空间:
Blog\Renderer,Blog\Parser,Blog\Security - ✅ 重构目录结构为模块化架构(
_blog/src/) - ✅ 配置 PSR-4 自动加载
- ✅ 统一使用
BlogRenderer::renderIndex()
测试基础设施
- ✅ 配置 PHPUnit 10.5
- ✅ 创建
phpunit.xml配置文件 - ✅ 创建
tests/bootstrap.php - ✅ 编写单元测试:
- SecurityFilterTest.php
- PathValidatorTest.php
- InputValidatorTest.php
开发工具配置
- ✅ 配置 PHP CS Fixer (PSR-12)
- ✅ 配置 PHPStan (静态分析)
- ✅ 配置 PHP CodeSniffer (代码风格检查)
文档
- ✅ 更新 README.md(413 行,包含完整的项目介绍、功能列表、安装说明、使用指南、部署指南、贡献指南等)
- ✅ 完善代码注释(所有主要类已添加完整的 DocBlock 注释)
- BlogRenderer 类 - BlogContentProcessor 类 - Security 类(SecurityFilter, PathValidator, InputValidator, CSRFProtection)
测试
- ✅ BlogRenderer 单元测试(315 行,25+ 测试用例)
- ✅ BlogContentProcessor 单元测试(298 行,20+ 测试用例)
- ✅ 集成测试(RenderFlowTest, FileScanTest - 13 个测试用例)
性能优化
- ✅ 实现 CacheService 类(662 行)
- 文件缓存支持 - Redis 缓存支持(127.0.0.1:6379,自动探测) - 自动降级机制(Redis 不可用时使用文件缓存) - 缓存统计(命中率监控) - TTL 支持 - 基于文件修改时间的缓存失效
- ✅ CacheServiceTest(539 行,35 个测试用例,包含自动探测测试)
已完成(补充) ✅
测试
- ✅ 编写
CSRFProtection单元测试 - ✅ 编写
BlogRenderer单元测试(25+ 测试用例) - ✅ 编写
BlogContentProcessor单元测试(20+ 测试用例) - ✅ 编写集成测试(RenderFlowTest, FileScanTest)
文档
- ✅ 更新 README.md(413 行,包含完整的安装、使用、部署指南)
- ✅ 完善代码注释(所有主要类已添加完整的 DocBlock 注释)
性能优化
- ✅ 实现缓存机制(CacheService)
- 文件缓存支持 - Redis 缓存支持(127.0.0.1:6379) - 自动探测 Redis 服务器 - 自动降级到文件缓存 - CacheServiceTest(35 个测试用例,539 行)
待完成 🔄
文档
- [ ] 创建架构设计文档
- [ ] 创建 API 文档(使用 phpDocumentor)
安全功能集成
- [ ] 验证所有入口点都正确使用安全功能
- [ ] 在表单中集成 CSRF 保护(如果需要)
- [ ] 添加输入验证中间件
性能优化
- [ ] 集成缓存到 BlogRenderer/BlogContentProcessor
- [ ] CDN 资源版本化
- [ ] 图片优化和懒加载
功能增强
- [ ] 搜索功能
- [ ] 站点地图生成
- [ ] RSS 订阅
- [ ] 暗色模式
- [ ] 标签系统
测试
- [ ] 达到 80%+ 代码覆盖率
已知问题
- CSRFProtection 在测试环境中会有 session 警告(不影响功能)
[2.0.0] - 之前版本
历史变更
- 初始版本发布
- Markdown 渲染支持
- KaTeX 数学公式支持
- highlight.js 代码高亮支持
- Mermaid 图表支持
注意: 详细的历史变更记录请查看 archive/ 目录中的历史文档。