我可以在不使用$ GLOBALS或依赖注入的情况下从另一个对象访问方法吗?

时间:2013-12-03 16:59:07

标签: php oop methods

以下是我的情况:我的用户类包含get_friends_list()get_last_visit()等功能。然后我有一个$db对象,它是一个数据库框架,它有insert()select()等函数。

我不想使用依赖注入的原因是我的$db对象有像查询计数器这样的东西,每次执行查询时都会更新。依赖注入将创建一个新的$db对象,因此我无法跟踪这些事情,因为会有一个全新的对象。

简而言之,有没有办法实现这一目标:

class user{
    public function get_last_visit(){
        return $GLOBALS['db']->get(
            'users',
            'last_visit',
            'username' => $this->username
        );
    }
}

但是没有使用我听过的$ GLOBALS变量是不好的做法。

1 个答案:

答案 0 :(得分:2)

依赖注入不会创建新对象,除非您明确clone(不是)。

基本上:使用依赖注入