1

私はちょっとした学習プロジェクトとして 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 オブジェクトが作成されているかどうかを確認し、作成されている場合は現在のものを使用します。

おそらく非常に単純ですが、どんな助けも素晴らしいでしょう。

4

1 に答える 1