ООП. Пользователь, группа, многие ко многим...

_vampiro_

Новичок
ООП. Пользователь, группа, многие ко многим...

Продолжая раскуривать ООП... столкнулся с такой загвоздкой:

PHP:
class user {
  private $login;
  ....
  public function GetGroup();
}
это объект пользователь. Данные хранит в БД, оттуда тянет, туда кладет.. все нормально.
Делаю объект "группа пользователей". Там права на доступы, настройка и проч.

Как "лучше" (красивше, удобнейше, правельнейше) привязывать пользователя к группе?
ведь один юзер может лежать в нескольких группах. Если сделать в объекте "группа" свойство "пользователи в группе" - то придется тянуть всех их из БД... что нереал при работе с объектом. :( Как быть?
 

zerkms

TDD infected
Команда форума
array_of_groups user::getGroups();
array_of_users group::getUsers();

имхо. при желании - array меняется на iterator
 

_vampiro_

Новичок
ну, это да.... но я тут всюду натыкаюсь на "Синглетоны-зло" и "Статика-смерть проекта". :)

Ведь статический метод - 100% аналог глобальной функции, как я понимаю.
 

_vampiro_

Новичок
ок, пусть прототипы (записал себе : поспрашивать у Яндекса про прототипы). Значит сущьности "пользователи в группах" не делается вообще? :) Классно. Тогда (если кому не лень) Скажите, пожалуйста... вот, раньше у меня был код в админке пользователей:

PHP:
$users_in_group = GetUsersFromGroup($GroupID);
функция лежала в либе и пылилась. Теперь у меня будет
PHP:
$Group = new UsersGroup($GroupID);
$users_in_group = $Group ->GetUsers('all');
Не будет-ли затраченое на создание объекта "Group" время являться "лишним" в данном случае. То есть платой за архитектуру, но не за функционал... С этим народ не борется? :)
 

zerkms

TDD infected
Команда форума
ну у тебя сейчас появилась сущность "группа" разве не логично, что для неё (сущности) свой класс + набор методов работы с ним. в том числе - и получение списка пользователей в группе
имхо, логично
 

AndreyKl

Новичок
Re: ООП. Пользователь, группа, многие ко многим...

Автор оригинала: _vampiro_
Продолжая раскуривать ООП... столкнулся с такой загвоздкой:
Доброго времени суток. Сейчас работаю (только начал) над подобной задачей. Не мог бы ты поделиться результатом трудов? Может быть примеры рабочих классов и их использования. (Я кину мыло).
??
Буду очень благодарен, а то не очень охота велосипед изобретать...
 

_vampiro_

Новичок
AndreyKl

IMHO - в яндекс, и рой в сторону готовых CMS. Делиться тем, что у меня щас есть - маразм :) Это надо прятать и переделывать, а не раздавать. И уж тем более - не новичкам. Учиться надо на качественных примерах.
 
Сверху