Изпитвам това, което смятам, че е проблем с кръгова зависимост с моето PHP приложение. Моля, уведомете ме, ако това е неправилно. Ето каква е ситуацията:
Два класа, LogManager и DBSession.
DBSession се използва за взаимодействие с базата данни, а LogManager се използва за влизане във файлове. И двете се използват широко в моето приложение. Когато създавате екземпляр на DBSession, трябва да му дадете екземпляр на LogManager чрез параметър на конструктора. Това е така, защото DBSession понякога ще регистрира информация във файл и ще използва екземпляра на LogManager, за да направи това.
Сега исках да разширя LogManager, така че да може да влиза и в таблица на база данни, а не в текстов файл. Естествено, предпочитам да използвам повторно съществуващите класове, но скоро осъзнах, че това доведе до интересна ситуация.
DBSession вече изисква екземпляр на LogManager за изграждане. Ако искам да използвам отново класа DBSession в LogManager, той вече ще изисква екземпляр на DBSession. Как мога да удовлетворя и двете изисквания? Очевидно нещо не е наред с подхода ми.
Как бихте ми предложили да поправя това?
Благодаря предварително, момчета.