![]() |
вопрос по архитектуре
Небольшой вопрос по архитектуре.
Всем известно, что классы должны быть максимально абстрагированы друг от друга. Но в моём проекте есть несколько классов, которым требуется объект класса базы данных $db. Каким способом лучше вносить объект $db в эти классы? Принимать объект $db в качестве агрумента конструктора инстанцируемого класса (с последующим занесением его в отдельное свойство класса) непрактично. Вносить его ссылочной функцией (которая реализует синглтон) в каждый метод нужного класса - тоже не дело. (и тем более, боже упаси, global'ом) Наследование нужными классами классa DB - тоже не дело.... Какие ещё варианты посоветуете. |
а почему ты против global? 0_o
|
Цитата:
|
Если я правильно понял вопрос в принципе вообще, то может быть это поможет:
db.php PHP код:
|
Нет слов. Пожалуйста, те кто ничего не понимает в данной теме, не пишите тут.
|
extends чем не устраивает?
|
чем тебе не устраивает мой вариант с общим конструктором?
|
Цитата:
Ориентируйся на удобство использования: видимо, должно быть $db-> и сразу то, что нужно |
Ой блин... паттерн Registry.
Если объект один, то паттерн Singleton. P.S. Zend_Registry юзай. |
Цитата:
|
Ну чререз Registry обращайся к ним.
Прогугли на этот паттерн - это я тоже должен заставлять? |
Цитата:
"....обращайся к ним..." Как раз таки способ обращения к ним меня и интересует... PHP код:
PHP код:
|
Ну еще раз прочитай )
Регистри нужен для первого способа. Во втором он нах не нужен, можно обычной переменной обойтись) |
| Время: 21:01 |