ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

вопрос по архитектуре
  #1  
Старый 21.11.2008, 10:13
Аватар для [x26]VOLAND
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
По умолчанию вопрос по архитектуре

Небольшой вопрос по архитектуре.
Всем известно, что классы должны быть максимально абстрагированы друг от друга.
Но в моём проекте есть несколько классов, которым требуется объект класса базы данных $db. Каким способом лучше вносить объект $db в эти классы?

Принимать объект $db в качестве агрумента конструктора инстанцируемого класса (с последующим занесением его в отдельное свойство класса) непрактично.

Вносить его ссылочной функцией (которая реализует синглтон) в каждый метод нужного класса - тоже не дело. (и тем более, боже упаси, global'ом)

Наследование нужными классами классa DB - тоже не дело....

Какие ещё варианты посоветуете.
 
Ответить с цитированием

  #2  
Старый 21.11.2008, 14:47
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

а почему ты против global? 0_o
 
Ответить с цитированием

  #3  
Старый 21.11.2008, 15:00
Аватар для [x26]VOLAND
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
По умолчанию

Цитата:
а почему ты против global? 0_o
C твоими познаниями построения архитекры приложений тебе нечего делать в этой теме.
 
Ответить с цитированием

  #4  
Старый 21.11.2008, 15:01
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Если я правильно понял вопрос в принципе вообще, то может быть это поможет:

db.php

PHP код:
switch($dbms)
{
    case 
'mysql':
        include(
$phpbb_root_path 'db/mysql.'.$phpEx);
        break;

    case 
'mysql4':
        include(
$phpbb_root_path 'db/mysql4.'.$phpEx);
        break;

    case 
'postgres':
        include(
$phpbb_root_path 'db/postgres7.'.$phpEx);
        break;

    case 
'mssql':
        include(
$phpbb_root_path 'db/mssql.'.$phpEx);
        break;

    case 
'oracle':
        include(
$phpbb_root_path 'db/oracle.'.$phpEx);
        break;

    case 
'msaccess':
        include(
$phpbb_root_path 'db/msaccess.'.$phpEx);
        break;

    case 
'mssql-odbc':
        include(
$phpbb_root_path 'db/mssql-odbc.'.$phpEx);
        break;

 
Ответить с цитированием

  #5  
Старый 21.11.2008, 15:04
Аватар для [x26]VOLAND
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
По умолчанию

Нет слов. Пожалуйста, те кто ничего не понимает в данной теме, не пишите тут.
 
Ответить с цитированием

  #6  
Старый 21.11.2008, 15:04
Аватар для MuXaJIbI4
MuXaJIbI4
Познающий
Регистрация: 20.11.2008
Сообщений: 68
Провел на форуме:
108674

Репутация: 32
По умолчанию

extends чем не устраивает?
 
Ответить с цитированием

  #7  
Старый 21.11.2008, 15:04
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

чем тебе не устраивает мой вариант с общим конструктором?
 
Ответить с цитированием

  #8  
Старый 22.11.2008, 04:11
Аватар для Dian
Dian
Участник форума
Регистрация: 02.09.2008
Сообщений: 101
Провел на форуме:
196792

Репутация: 37
По умолчанию

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

  #9  
Старый 22.11.2008, 19:19
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Ой блин... паттерн Registry.
Если объект один, то паттерн Singleton.

P.S. Zend_Registry юзай.
 
Ответить с цитированием

  #10  
Старый 23.11.2008, 06:28
Аватар для [x26]VOLAND
[x26]VOLAND
Moderator - Level 7
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


Отправить сообщение для [x26]VOLAND с помощью ICQ Отправить сообщение для [x26]VOLAND с помощью AIM
По умолчанию

Цитата:
Ой блин... паттерн Registry.
Вопрос немного в другом. Я ищу способ обращения к классам (не важно где они хранятся и чем управляются)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоскликивание (вопрос не мой но помощь с ответом важна) Дрэгги Болталка 1 30.06.2008 01:45
[прошу уделить внимание] вопрос про форточки procedure Болталка 14 26.04.2008 18:44
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
FAQ. Перед тем как задать вопрос. Fata1ex ICQ 1 04.11.2007 20:35
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ