Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2012, 12:41   #1
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
Радость [PHP] Архтектура взаимодействия с бд классом

Доброго времени суток. Встала дилемма. Пишу систему, в которой краеугольным камнем стоит работа с бд. Дабы не мариновать себе на будущее проблемы, все операции с бд выделил в один класс: MySQL. Стоит отметить, что большинство операций так или иначе взаимодействуют с информацией о пользователе. Все, казалось бы, чудно, однако шишки начинают давать о себе знать, когда, например, нужно проверить валидность авторизованности юзера. Получается что-то вроде того: MySQL::isUserLogged. Классно смотрится, да? :black eye: И причем тут мускул? Конечно, его вклад в реализацию задуманного этим объектом несомненна, однако как-то топорно смотрится мускульный преф при проверке авторизованности юзера, пусть даже и посредством запросов в бд.. В итоге я пришел к выводу, что было бы не плохо выделить "юзерские" функции в отдельный, юзерский класс.
Я вижу два пути:
1) Прокси
2) Потомок

По первому. Не радует только то, что придется дублить все входные параметры и название.
По второму. Слишком круто наследовать целый класс, учитывая, что в какой-то момент необходимых юзеру объектов в родителе может стать меньшинство, что, как мне кажется, сделает юзер класс просто былокодом.

Как посоветуете организовать взаимодействие? Спасибо
WennY вне форума Ответить с цитированием
Старый 24.08.2012, 13:00   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Хм, MYSQL класс я бы сделал только для операций с БД. Так сказать прослойка между БД и другими классами. У вас сейчас MYSQL класс стремится стать Божественным объектом, что не есть хорошо
Котлеты отдельно, мухи тоже ;-)
Gorychev вне форума Ответить с цитированием
Старый 24.08.2012, 13:14   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Логичней, как уже сказали, делать два (и более) отдельных классов.
MYSQL для мускуля
USER для ползователя (логин, сессии и т.д.)

а в классе USER для проверки авторизации можно сделать запрос в БД для проверки сессий из кук с значением БД.

Ну как-то так
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Схема взаимодействия С++ Денис999 Помощь студентам 2 04.12.2011 20:07
memcached. Вопрос взаимодействия Виталий Желтяков PHP 3 13.11.2010 12:49
Механизм взаимодействия с базой данных arhiepiskop Помощь студентам 1 02.06.2010 18:31
Проблема взаимодействия потока с формой Arkuz Общие вопросы Delphi 4 26.02.2010 22:35
Взаимодействия приложения с Web сервером. Руслантус Общие вопросы C/C++ 0 09.08.2009 00:18