session - 如何在 Magento 中使用 session

标签 session magento

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

最佳答案

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

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

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

会将两个值保存到 session 中,即使它们具有相同的 key 。

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

但实际上,只要您以某种方式命名变量,将内容保存在核心/ session 上就不应该成为问题。

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

关于session - 如何在 Magento 中使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11525391/

相关文章:

php - 删除用户但仍登录后销毁 session

session - Symfony2 : check whether session exists or not

php - 在保存事件之前/之后查看 Magento 模型数据更改?

php - 如何通过商店 ID 在 PHP 数组中获取 Magento 商店详细信息?

javascript - Google 数据层数据未传递到标签管理器助手

mysql - 导入 MAGMI 后,Magento Store 变慢了

security - 为什么浏览器接受通过非安全 (HTTP) 连接发送的安全 cookie?

Node.js 无状态/无 Cookie session API 身份验证

ruby-on-rails-3 - Rails 如何知道何时从 `sessions` 表中删除记录?

Magento 重写核心模型资源集合