Раньше я разрабатывал все проекты на основе PDO DB. Сейчас прочитав много книг и статей, начал задумываться а правильный ли я подход использую? Везде идут советы по использованию Doctrine или Propel, как более удобное средство. Да, формат работы по приведённым примерам мне понравился. Но вот смогут ли эти библиотеки создавать сложные запросы с несколькими например JOIN'ами, и вообще как скажется использование этих библиотек на производительности?
Поэтому вопрос к общественности: «Чем Вы пользуетесь для доступа к БД, и почему Вы выбрали именно данный способ?».
Помимо самого ОРМ (т.е. возможности работать с записями из таблицы как с экземплярами класса) очень полезен и конструктор запросов, хоть он и кажется инородным и неудобным на первый взгляд.
Например использование пропелевского Criteria значительно упрощает процесс сборки сложных запросов и улучшает читаемость кода (прощайте бесконечные спринтф и другие операции со строками), возможностей хватает в 99% процентов случаев.
Если гидрация (процесс формирования объектов из результата запроса) окажется ботелнеком, например при выводе большего списка с джоинами в кучу таблиц — в пропеле можно от нее отказатся и использовать pdo::fetch, при этом используя критерий.
Полагаю что доктрин обладает аналогичным функционалом.