PHPアプリケーションの循環依存の問題であると私が信じていることを経験しています。これが正しくない場合はお知らせください。状況は次のとおりです。
LogManagerとDBSessionの2つのクラス。
DBSessionはデータベースとの対話に使用され、LogManagerはファイルへのログ記録に使用されます。どちらも私のアプリケーションで広く使用されています。DBSessionのインスタンスを作成するときは、コンストラクターパラメーターを介してLogManagerのインスタンスを指定する必要があります。これは、DBSessionが情報をファイルに記録し、LogManagerインスタンスを使用してこれを行うためです。
ここで、LogManagerを拡張して、テキストファイルではなくデータベーステーブルにもログを記録できるようにしたいと思いました。当然、既存のクラスを再利用するのが好きですが、これが面白い状況をもたらすことにすぐに気づきました。
DBSessionは、構築のためにLogManagerのインスタンスをすでに必要とします。LogManagerでDBSessionクラスを再利用する場合は、DBSessionのインスタンスが必要になります。どうすれば両方の要求を満たすことができますか?明らかに、私のアプローチには何か問題があるに違いありません。
これを修正することをどのように提案しますか?
よろしくお願いします。