我正在编写一个 PDO Wrapper 作为一个学习项目,我正在尝试将它与使用依赖注入结合起来。我当前的设置有一个将设置依赖项的工厂。因此,例如,我将有一个表单类,它传入几个对象以输出 html 属性等。
我想保持这种状态,但在我的工厂类中,我只想使用每个对象的一个实例,而不是每次都创建一个新对象。一个例子可能会更好地解释这一点:
class Factory {
public static function Form() {
$html = new Html;
$form = new Form;
$form->html = $html;
return $form;
}
}
还有我的 HTML 类:
class HTML {
// Outputs attributes in the given array
public function attributes($attributes = array()) {
// Create string of HTML attributes
foreach($attributes as $key => $attribute):
$tags .= $key . '=' . $attribute . ' ';
endforeach;
return $tags;
}
}
所以基本上,我想在工厂中创建一次 HTML 对象,然后将其传递给 Form 方法,该方法将创建表单并允许我访问 HTML 方法。
我假设我必须在我的工厂中设置一个构造函数来创建 HTML 对象?我从中看到的问题是,每次我运行 Factory::Form 时,都会创建一个新的 HTML 对象。有没有简单的方法解决这个问题?即当使用Factory 时,检查是否创建了HTML 对象,如果是,则使用当前的。
这可能很简单,但任何帮助都会很棒。