【问题标题】:How to reference the instantiating class如何引用实例化类
【发布时间】:2010-08-27 17:18:43
【问题描述】:

目前我的控制器正在实例化一个模型类。每次创建此类时,我都需要在模型中设置登录用户的信息。我觉得有一种更优雅的方法可以做到这一点,但我不知道该怎么做:-(

下面是代码示例:

$leadModel = new Application_Model_DbTable_Leads;
$leadModel->user = $this->user;

我想从我正在创建的模型内部做的是使用类似这样的方式访问用户(我知道这仅适用于扩展其他类的类):

$user_id = $this::parent->user;

非常感谢!

【问题讨论】:

  • 您可能需要阅读依赖注入。可以这么说,传递模型所需的项目。

标签: php model-view-controller oop


【解决方案1】:

这通常使用构造函数参数来完成:

class Application_Model_DbTable_Leads {
    public function __construct($user) {
        $this->user = $user;
    }
}

...

$a = new Application_Model_DbTable_Leads($user);

没有办法获得对实例化类的引用。

【讨论】:

猜你喜欢
  • 2020-01-04
  • 1970-01-01
  • 2012-03-25
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
相关资源
最近更新 更多