私はちょっとした学習プロジェクトとして PDO ラッパーを書いていますが、それを依存性注入と組み合わせようとしています。私の現在のセットアップには、依存関係を設定するファクトリがあります。たとえば、いくつかのオブジェクトを渡して html 属性などを出力するフォーム クラスを作成します。
私はそれを維持したいと思っていますが、私のファクトリ クラスでは、毎回新しいオブジェクトを作成するのではなく、各オブジェクトのインスタンスを 1 つだけ使用したいと考えています。例はおそらくこれをよりよく説明します:
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;
}
}
したがって、基本的には、Factory で HTML オブジェクトを作成し、それを Form メソッドに渡します。これにより、フォームが作成され、HTML メソッドにアクセスできるようになります。
HTML オブジェクトを作成するコンストラクターを自分の Factory にセットアップする必要があると思いますか? そこからわかる問題は、Factory::Form を実行するたびに、HTML オブジェクトが新しく作成されることです。それを回避する簡単な方法はありますか?つまり、Factory を使用する場合は、HTML オブジェクトが作成されているかどうかを確認し、作成されている場合は現在のものを使用します。
おそらく非常に単純ですが、どんな助けも素晴らしいでしょう。