Тоже задавался подобным вопросом. Пробовал доктрину и пропел, но откинул их ввиду большой прожорливости и костылей при сложных запросах. Также раздражало огромное количество вспомогательных файлов (базовые классы, мапперы и т.п.) на каждую модель, сгенерированные этими библиотеками. В итоге сделал свою ORM на базе Zend_Db_Table, Zend_Select (это особенно выгодно, когда сам проект построен на ZF).
Для простых случаев удобно использовать Active Record. Самым удачным примером реализации считаю AR в фреймворке Yii.