私は現在、OOP の原則に基づいて何かを作成しており、依存性注入を適用しようとしています。私はここで何か間違ったことをしている可能性があることを認識しています.DI全体はおそらくそれよりも混乱しているようですが、まだ頭を悩ませています.
さまざまなフォーム要素を出力する Form クラスを作成しましたが、フォーム クラスが正しく機能するには、少なくとも 2 つの他のクラス (オブジェクトとして作成) が必要です。
これが私がそれを手に入れた方法です:
$config = new Config();
$db = new Database();
$html = new HTML();
$form = new Form($config, $db, $html);
これは私が遊んでいるだけなので、フォームはこれらすべてを必要としないかもしれませんが、要点を説明するためにそれらを使用しています。
ここで、フォームを作成するときに、フォームを使用するために 3 つのオブジェクトを渡す必要はありません。これは静的メソッドなどで解決できますが、実際には行きたい道ではありません。
Form クラスで以前に作成した 3 つのオブジェクトを使用できるようにする最善の方法は何でしょうか?
ある程度、ほぼグローバルなタイプの動作が必要だと思います。
これと工場、IoCコンテナなどについて話していることがいくつか見つかりましたが、それを明確かつ簡単に説明したものは何もないので、これに関する助けは素晴らしいでしょう. または、わかりやすいチュートリアルへのリンクなど、自分で見つけられなかったものもあります。
Pimple も見つけました。