Session 如何在Magento中使用会话

Session 如何在Magento中使用会话,session,magento,Session,Magento,我注意到在Magento中有不止一个会话类,例如,Mage::getModel('core/session')、Mage::getModel('customer/session')等等。当我想使用会话作为存储时,我应该选择哪个会话类?为什么?我只是感到困惑。Magento的代码被组织成模块。模块的目的之一是提供名称空间。也就是说,模块允许一组开发人员编写代码,而不用担心他们的变量、对象等会被另一组开发人员意外地践踏 Magento中的每个模块都可以有自己的会话对象。通过为每个模块提供自己的会话对

我注意到在Magento中有不止一个会话类,例如,Mage::getModel('core/session')、Mage::getModel('customer/session')等等。当我想使用会话作为存储时,我应该选择哪个会话类?为什么?我只是感到困惑。

Magento的代码被组织成模块。模块的目的之一是提供名称空间。也就是说,模块允许一组开发人员编写代码,而不用担心他们的变量、对象等会被另一组开发人员意外地践踏

Magento中的每个模块都可以有自己的会话对象。通过为每个模块提供自己的会话对象Magento,开发人员可以避免PHP全局会话变量中的名称冲突。例如,下面的代码

Mage::getModel('core/session')->setData('foo',$someValue);
Mage::getModel('customer/session')->setData('foo',$someOtherValue);
将两个值保存到会话中,即使它们具有相同的键

至于您应该选择哪个会话类——如果您正在编写自己的模块,那么您应该创建自己的会话类/模型,从而避免上述冲突

实际上,只要您以某种方式命名变量的名称空间,在核心/会话上保存内容就不应该是问题

Mage::getModel('core/session')->setData('my_namespace_foo',$someValue);

“作为存储”是什么意思?你会存储什么?我指的是我们可以保存和检索数据的东西。在开发过程中,尤其是在用户会话中,通常会将一些数据保存到会话中,并在未来的交互中检索这些数据,例如未经用户登录的愿望列表项。谢谢!那么,不同类型会话类的实例是否共享一个生存期?我们可以为每个实例指定一个值吗?我不确定,您需要查看实现。