我刚刚发现我实际上可以达到store objects in the $_SESSION,我觉得这很酷,因为当我跳转到另一个页面时,我仍然有我的对象.现在,在我开始使用这种方法之前,我想知道这是否真的是一个好主意,或者是否涉及potential pitfalls个问题.

我知道,如果我有一个单一的进入点,我就不需要这样做,但我还没有到达那里,所以我没有一个单一的进入点,我真的想保留我的物体,因为我不会像那样失go 我的状态.(现在我也读到我应该为无状态网站编程,但我还不理解这个概念.)

所以in short:在会话中存储对象可以吗?有什么问题吗?


编辑:

Temporary summary:到目前为止,我知道它可能是better to recreate个对象,即使它涉及再次查询数据库.

进一步的答案可能会多出elaborate on that aspect个!

推荐答案

我知道这个话题由来已久,但这个问题不断出现,而且没有得到我满意的解决:

无论您是在$_会话中保存对象,还是根据隐藏表单字段中的数据重新构建对象,或者每次从数据库中重新查询对象,您都在使用状态.HTTP是无状态的(或多或少;但请参见GET vs.PUT),但几乎所有人关心的web应用程序都需要在某处维护状态.把国家推入角落和缝隙等于某种理论上的胜利,这种做法是错误的.国家就是国家.如果使用state,您将失go 无状态所获得的各种技术优势.除非你事先知道你应该为此而失眠,否则这不是让你失眠的事情.

汉克·盖伊提出的"双重打击"论调让我特别困惑.OP是否正在构建一个分布式、负载平衡的Electron 商务系统?我的猜测是否定的;我将进一步假定,序列化他的$User类或其他任何东西,都不会使他的服务器无法修复.我的建议是:使用对应用程序敏感的技术.$_会话中的对象很好,需要遵循常识预防措施.如果你的应用突然变成了在流量上与亚马逊抗衡的东西,你需要重新调整.这就是生活.

Php相关问答推荐

如何限制WordPress自定义分类术语页面中的术语数量

PHP原始数据读取引发max_input_vars错误

从订单项目中获取ACF WooCommerce产品价值

将客户重定向到自定义感谢页后的空白页

laravel中获取的数据会自动更改时间戳值

是否使用联系人表单7 wpcf7_Feedback_Response输出答复中的html?

如何将WooCommerce产品从一个产品复制到另一个产品S

未收到Strava WebHook事件数据

Regex:高级删除单行PHP注释

curl_close()未从PHP 8开始写入CURLOPT_COOKIEJAR会话文件

在 WooCommerce 订阅续订订单中设置送货方式

API 平台 - UI 服务器端点定义

根据小计向 WooCommerce Checkout 添加佣金

woocommerce checkout 页面上的自定义字段

循环中未序列化数组显示的问题

URL中包含"&"与DirectoryIterator不兼容

WooCommerce单个产品页面上启用额外选项卡的产品元框字段

来自 GoDaddy 的邮箱在 Gmail 中显示为via

在 WooCommerce 结帐后更新用户元字段

WordPress 函数 get_post(post_id) 是否查询数据库?