php - PHP5 中的 session ——是否内置 session ?

标签 php session

背景:
我正处于一个基于 PHP5.3 的新项目的起点。我刚刚开始研究以一种最初让我将 session 保存到数据库的方式处理 session 的方法。我会将所有 session 管理分离到一个单独的库中,以便于透明地迁移到 memcached单独的 session 数据库服务器,或任何当时最好的解决方案。

虽然我对什么是好的方法感到有点困惑 - 关于如何处理 session 取决于 PHP 版本,网上有很多不同的想法,我读得越多,我就越困惑。

问题:
以下是我认为最合适的选项。我应该使用哪一个,为什么?是否还有其他应考虑的替代方案?

选项 1:
使用 session_set_save_handler 并为每个 session 事件创建自定义函数,以充分利用 PHP 的 native (内置) session 处理,但仍将 session 保存到数据库中。 Session 可以这样写 $_SESSION['identifier'] = 'value';

选项 2:
构建一个完整的 session 类,它与 PHP 的 session 无关,只是充当与我数据库中的 sessions 表对话的任何数据库模型。 Session 可以这样写 $this->sessions->write('identifier', 'value');

最佳答案

$_SESSION 超全局实际上是 PHP 中的一个非常好的特性。

根据您的软件解决方案的最终结果,第三方用户会更习惯于在后台使用您的自定义 session 处理程序写入和读取这个超全局。

通过 Suhosin 也可以获得很好的安全增强功能。在为自己开发 session 存储时,您无需“担心”。

关于php - PHP5 中的 session ——是否内置 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4955322/

相关文章:

php - Where 子句中的 Lumen AND OR 条件

session - Firebase Analytics如何精确地处理 session 持续时间/超时?

java-session.getattribute 返回 null

php - IP地址欺骗/更改以在本地机器上进行测试

javascript - 表单提交()不提交

php - AJAX 不解析 PHP 中的数据

javascript - 当管理员用户的帐户超时时,如何提醒他们

c# - 为什么 HttpSessionState 不实现 IDictionary?

php - 为什么我不应该将序列化数组插入到我的数据库字段中?

php - Laravel 5 RESTful API - 理解资源概念