根据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上,但是它开始点击了,但可以做一点推力!
提前致谢。