Symfony2:使用会话对象还是我自己的管理器更好



与该问题相关
我已经明白,我必须创建一些服务来处理我的实体等等。这是因为我必须"移动";我的逻辑离开控制器并放入";管理者";(即服务)

现在我有了一个包含一些逻辑的服务;关联对象"-说那些对象是运动队
假设我的列表的第一个元素(以某种方式从存储库生成)是";默认";团队,并说我有一个页面,我可以在整个会话中更改它
注销或会话过期后,我想在"返回;默认";情况

所以我的想法是:;由于我已经为这个实体编写了一个管理器,所以我将在这个类中编写一个私有属性,在其中加载(从db)这个属性并存储(临时使用setter方法)我的更改">
这不会影响我的数据库,我可以在整个会话中长时间保存信息。

但我想到了一个想法:会话对象怎么样?(如果我没有理解错的话,这是一项服务)
我的解决方案是一个好的解决方案,还是将我的信息存储到会话对象中更好
从我的角度来看,这是相同的,只是我可以使用app.session直接从trick读取会话的变量。我错了吗?

此外,若我并没有错的话,我怎么能从trick访问我的对象属性,而不每次都从控制器传递它们呢?(这很像有一个全局变量,我想在我的应用程序页面中到处显示它)。

编辑:

更多信息可以在这个聊天记录中找到。

如果您想在会话期间存储变量(例如,登录到注销,或者只要用户没有关闭浏览器窗口),则必须将其存储在会话对象中。如果要在请求的持续时间内存储变量,可以将其存储在管理器服务中。

但是,您可以使用管理器服务加载会话变量,并使其对控制器可用。

就像将控制器与数据库/条令解耦是个好主意一样,将控制器与会话解耦也是个好主意。

更新:正如评论中提到的,在研究REST时,在服务中做会话不是一个好主意。但是,您仍然应该将变量存储在会话中,并使用控制器在服务中设置值。

相关内容

最新更新