在模型中保存和初始化会话值

时间:2012-03-07 20:09:20

标签: php session dependency-injection doctrine

想象一下,我想登录用户。用户发送验证数据,我的控制器获取POST请求,因此它调用User Repository方法以便注册他。

我想用用户数据启动用户Session。但是我应该如何开始会议?它应该从控制器还是模型开始?我认为它应该是模型,因为我的业务逻辑是说必须启动会话。但是怎么样?我应该将会话对象传递给我的存储库吗?

我使用Doctrine作为模型层,我自己的框架用于其余部分。我使用依赖注入,但我没有看到如何从实体/存储库层访问Session。

我现在唯一的解决方案是调用存储库方法将会话作为参数传递,但感觉不对。

1 个答案:

答案 0 :(得分:1)

我认为会话处理应该在控制器中完成,但只是个人意见。如果你想要一个清晰的关注点分离,那么它应该在控制器上进行。使Doctrine(它非常注重抽象和独立性)可靠于会话并没有多大意义。

创建一个从模型调用方法的控制器来注册用户。模型方法返回用户特定数据,您将其传递给Session(来自控制器)。您可能会在很多地方使用会话,与模型无关。为什么要将它扩展到两个级别,如果你可以将它封装在一个级别中?