@websiteserf

Чем оправдано использование QueryBuilder и ActiveRecord в одном проекте?

Чем оправдано использование QueryBuilder и ActiveRecord в одном проекте?
Очень интересует, как оправдать использование этих двух подходов работы с БД в одном проекте... И разумно ли использовать один QueriBuilder в таком случае и отказаться от ActiveRecords, в частности при использовании запросов с JOIN, UNION
  • Вопрос задан
  • 431 просмотр
Решения вопроса 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
AR как правило использует свой QueryBuilder.
И в сумме называется это ORM
А так же QueryBuilder можно вызывать "напрямую" т.к. он публичный.

Так что это не взаимозаменяемые вещи вообще.
Другой вопрос если используется две разные не связанные библиотеки, это уже что-то страшное. Я такого не встречал.
Ну и что-то подсказывает что так делать не надо.
Ответ написан
ActiveRecord в большинстве случаев подходит только для простых запросов. В случае чего-то более-менее заковыристого приходится лезть в модель и городить огород из правил разной степени кривости (если фреймворк поддерживает), или еще хуже - писать все вручную. Два варианта плохи по определению. Поэтому ActiveRecord для простых операций, а QueryBuilder (или какой-нибудь нативный и удобный объект для работы с БД) с блэкджеком и шл PDO и плейсхолдерами - для всего остального.

Отказываться не стоит, просто нужно использовать молоток для забивания гвоздей, а лопату - для копания. ActiveRecord адски удобен, при простых выборках или рядовых insert \ update он смотрится просто великолепно и делает код более простым и наглядным. В проектах ИМ 80% операций с базой идет через AR, и это очень облегчает жизнь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
trevoga_su
@trevoga_su
ПРЕЖДЕ ЧЕМ СПРАШИВАТЬ ТАКОЕ, НАДО понимать, что такое QueryBuilder и что такое ActiveRecord

QueryBuilder - это конструктор SQL запроса
ActiveRecord - это ORM

эти две технологии по факту, теоретически НИКАК не связаны между собой, но ORM скорее всего использует QB

И разумно ли использовать один QueriBuilder в таком случае и отказаться от ActiveRecords, в частности при использовании запросов с JOIN, UNION
Да. Это нормальная практика. Не надо с помощью ORM пытаться делать большие запросы. ORM - для тривиальных вещей.
Ответ написан
Комментировать
@Fortop
Tech/Team lead
Зависит от размера проекта.

Для прототипирования AR лучше.

Для крупной разработки нужен будет билдер запросов.

Соответственно можно использовать первое и переписывать на второе по мере роста
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы