Работа с базой в ООП-приложениях на php 5.3

Расскажите, кто чем пользуется для работы с базой (MySQL)?
Пользуетесь ORM? Если да, то какой?
Если нет, то как решаете проблему связей many-to-many через третью таблицу? Создаёте ли вы для третьей таблицы объект?

Спрашиваю, потому как уже не первую неделю терзаюсь — что же выбрать. Всюду рекомендуют Doctrine. Использовал её для своего велосипеда год-два назад (версия тогда была 1 stable). Показалась излишне избыточной и жутко тормозной. Немного спасла тогда компиляция всех классов в один файл 2.5 мегабайт размером. Вторую версию попытался взять наскоком — сходу не пошло. Стоит ли под неё «рыть» дальше?

Буду юзать MyISAM без внешних ключей, из всех плюшек реально нужен только маппинг на объекты и итератор по оным. Ну и возможность делать «чистые» запросы при необходимости. Связи опять же. Как many-to-one, так и через третью таблицу. Планируется высокая нагрузка.
Попробовал phpactiverecord — штука неплохая, но с реляциями у него… Пичаль. Как и с составными именами классов вида My_Library_Facade, My_Library_Proxy etc.
  • Вопрос задан
  • 2972 просмотра
Пригласить эксперта
Ответы на вопрос 5
SwampRunner
@SwampRunner
Пользуюсь pyha.ru/go/godb/
Ответ написан
Комментировать
standov
@standov
Propel — есть все что ищите + много больше и без тормозов диких доктрины
Ответ написан
Dunadan
@Dunadan
Используете ли какой-либо фреймворк?

Мы у себя используем Кохану 3 и к ней Jelly — дешево, с реляциями дружит хорошо.

Many-to-many не требует создания модели для промежуточной таблицы.

Одна беда — не standalone.
Ответ написан
Nodge
@Nodge
Разрабатывая с использованием Yii Framework использую, в основном, ORM. Иногда в узких местах делаю запросы вручную, через PDO. Особых проблем с производительностью не возникало.
Ответ написан
zizop
@zizop
Юзаем Doctrine + собственные расширения для неё. Довольный как удав) Про тормоза, так это неизбежно. За удобство надо платить. Но можно хорошо ускорить веб-приложения юзая каэирование запрсов и кэширование выборок.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы