PHP依赖注入容器

时间:2015-07-22 20:39:39

标签: php mysql oop pdo dependency-injection

根据SO的这个(以及许多其他)主题的大部分问题的作者,我已经围绕依赖注入的主题做了很多阅读。虽然我理解了这个概念和基本用法,但我很难通过实现Container类来管理依赖项。

一些示例代码 - 在此处http://code.tutsplus.com/tutorials/dependency-injection-huh--net-26903

容器

// Also frequently called "Container"
class IoC {
    /**
     * @var PDO The connection to the database
     */
    protected $db;

    /**
     * Create a new instance of Photo and set dependencies.
     */
    public static newPhoto()
    {
        $photo = new Photo;
        $photo->setDB(static::$db);
        // $photo->setConfig();
        // $photo->setResponse();

        return $photo;
    }
}

$photo = IoC::newPhoto();

我的问题是关于将static :: $ db传递给照片类的SetDB()方法 - 是静态引用容器(IoC)类的属性还是引用照片类中的属性?

Photo类的SetDB()方法

protected $db
 public function setDB($dbConn)
{
    $this->db = $dbConn;
}

查看上面列出的链接可能会有所帮助,因为可能是包含未显示但假设的方法/属性的类的情况。我无法理解如何传递static :: $ db正在做任何事情--IoC类中的$ db属性似乎没有赋值。

当我创建这个代码的自定义示例时 - 我(不出所料)得到一个错误,说我没有将任何内容传递给SetDB方法。

我希望这是一个足够明确的问题 - 过去几天我已经花了很多时间把自己绑在DI上,但是它开始点击了,但可以做一点推力!

提前致谢。

0 个答案:

没有答案