【发布时间】:2015-03-06 12:05:46
【问题描述】:
我在自己的工厂类上工作,它实例化依赖项并在设置/请求依赖项时传递构造。如果依赖项被缓存(已被另一个类实例化),我将传递该类实例而不是重新实例化(主要用于数据库连接)。我目前遇到的问题如下。
** 为避免出现大问题并节省阅读时间,我试图尽可能简单地说明问题,如果需要实际代码,我可以粘贴。
Class View {
// Construct Requests User Model
}
Class Controller {
// Construct Requests User Model & Class View
$this->user->set($newuserid);
$this->view->display('file');
}
所以Controller 被实例化,因为View 被设置为依赖项,它被实例化并通过__construct 传递给Controller。一切都很好,但对于个人资料页面之类的东西。在我设置新用户的地方(如上图所示),设置新用户 ID 也会更改包含在 View 用户模型中的用户 ID。我没有使用静态变量,所以我很困惑为什么在controller 中所做的更改会影响view 用户模型。这给我带来了一个问题,因为登录的用户 ID 是通过站点的入口点(引导程序)设置的,并且当配置文件页面覆盖登录的用户 ID 时会导致错误。我在我的工厂中添加了一个newInstance 选项,而是为用户配置文件实例化一个新的用户模型。一切正常,但我仍然很好奇我为什么遇到/遇到这个问题。
【问题讨论】:
-
我不确定您要问的问题是什么。您可以发布用户模型类并添加评论,这种意外更改发生在哪里?