谁负责推车会话管理?

时间:2016-01-16 19:38:17

标签: php laravel session

我为最近做过的网站设计了一个购物车。为了我的坚持,我选择了会议。目前,购物车负责自己的会话管理。实例化Cart后,constructor会使用Session外观从会话中恢复购物车。当Cart被销毁时,destructor会再次使用外观将当前的购物车状态保存到会话中。我知道这不好,需要重构。

我看到会话管理有两条可能的路由,所以我的问题是,责任是管理会话的吗?是否应该由控制器负责保存和恢复会话中的购物车? OR 我是否将会话图层注入购物车,购物车仍在内部处理它?<​​/ p>

我会说我使用php __destruct()得到了混合结果,因为它可以在关机序列中以任何顺序调用。我想我会因为不可预测的行为而放弃使用它(除非有人说服我)。

我对购物车处理自己的会话存储的一个好处是,我只需要在 1 的地方处理保存和恢复。如果我走控制器路径,我想我需要restore()save()它需要的每一个控制器方法。我不反对这样做,如果我清理了它的依赖关系购物车,但显然我们总是喜欢写更少的代码。

我知道这个问题有点开放,并且可能会邀请基于意见的答案,所以请提供您已经尝试过或未使用过的事情的具体示例,以及它们的优缺点。

谢谢!

1 个答案:

答案 0 :(得分:0)

控制器中没有会话处理。这是委托和巩固的目的。

会话应由会话处理程序处理。使用依赖注入,您可以在构造函数中注入处理程序。这对于可维护性,可伸缩性和可测试性来说非常好。