Symfony学习笔记 - Symfony Documentation - The Basics(3)

Symfony学习笔记 - Symfony Documentation - The Basics(3)

4、Session

与php传统的$_SESSION相比较,symfony的session是其加强版本,主要包括:

  1. 支持redis、文件、数据库等的存储方式
  2. CSRF保护、会话固定防护
  3. 原生支持分布式存储
  4. 存取、读取的速度提升
    Symfony Session系统在保持易用性的同时,提供了更强大、更安全的企业级特性,是现代PHP项目的最佳选择。只有在极端受限的环境或维护遗留代码时,才建议继续使用原生$_SESSION。
    在前后端分离的方案中(vue、react等),建议用token来完全替换session。即使在前后端一体的方案里面,也可以同token来替换session。但是,对于​​典型的服务端渲染PHP应用​​,​​Symfony Session是最佳首选​​,因为:
  5. 与Symfony表单系统深度集成
  6. 提供完整的开箱即用安全防护
  7. 开发效率更高,维护成本更低
    仅当满足以下条件时考虑引入Token:
  8. 应用中有大量AJAX交互需求
  9. 明确需要支持移动端接入
  10. 已有明确的向SPA迁移的计划

预期用户<1000并发时,可以采取token+symfony session的混合方案,预期用户>10000并发时,采取token方案。