гемоглобин
Новичок
Правильно ли я понимаю, что ActiveRecord - это своего рода антипаттерн, потому что объекты бизнес-логики сильно завязаны на конкретом способе их хранения? Или это всё бред и неважно?
Ну, например, "пользователь", "корзина". А элементы бизнес-логики например такие: "пользователь положил товар в корзину". Это еще называется доменом.Я, если чесно, не понял, что значит "объекты бизнес-логики".
?но рискну предположить, что нет, не правильно понимаете.
Вот на этом конкретном примере покажи - что в AR плохо и почему.Ну, например, "пользователь", "корзина". А элементы бизнес-логики например такие: "пользователь положил товар в корзину". Это еще называется доменом.
$article->getTags()
$article_mapper->fillArticleTags($article);
// На примере объекта "Административная группа"
class Group ...
/**
* Возвращает коллецию объектов доступа.
*
* @param void
* @return Cover_Array
*/
public function getAccesses()
{
if ($this->accesses === null)
{
foreach ($this->mapperManager
->getMapper('Group/Access')
->findListByGroupId($this->getId()) as $access)
{
$this->setAccess($access);
}
}
return $this->accesses;
}
А что ты делаешь, если надо получить список пользователей с приджойненными к ним данными из других таблиц? Делаешь для каждого пользователя по отдельному запросу на каждую связь с другой таблицей?т.е. с одной стороны идёт явное отделение бизнес-логики от способа хранения, с другой - мы не ограничиваем жестко модель в её способности быть совмещенной с БД.
Как вопрос джойнов относится к обсуждаемой теме? Если я начну рассказывать, то я выйду за рамки твоего вопроса. Мы скатимся в дебри ORM и конкретно моего велосипеда.А что ты делаешь, если надо получить список пользователей с приджойненными к ним данными из других таблиц?
foreach ($groups as $group) {
$group->getAccesses(); // таки да - тут выборка для каждой группы.
}
Ай, надо взять себе за правило не заходить в темы где упоминается про ООП.
Умники как всегда показали своё ЧСВ.AmdY нравится это
гугл транслит)а что такое default table getway? Что-то нимогу нагуглить ничего
скорее всего http://design-pattern.ru/patterns/table-data-gateway.htmlа что такое default table getway? Что-то нимогу нагуглить ничего