Небольшой вопрос по архитектуре.
Всем известно, что классы должны быть максимально абстрагированы друг от друга.
Но в моём проекте есть несколько классов, которым требуется объект класса базы данных $db. Каким способом лучше вносить объект $db в эти классы?
Принимать объект $db в качестве агрумента конструктора инстанцируемого класса (с последующим занесением его в отдельное свойство класса) непрактично.
Вносить его ссылочной функцией (которая реализует синглтон) в каждый метод нужного класса - тоже не дело. (и тем более, боже упаси, global'ом)
Наследование нужными классами классa DB - тоже не дело....
Вносить его ссылочной функцией (которая реализует синглтон) в каждый метод нужного класса - тоже не дело. (и тем более, боже упаси, global'ом)
На самом деле все не так мрачно. Вполне можно пользовать синглтон (сохранять в поле класса), либо даже глобальный объект - просто это нужно закатать в базовый класс.
Ориентируйся на удобство использования: видимо, должно быть $db-> и сразу то, что нужно