Необходимо отделить логику работы с БД от модели. Собственно необходима возможность работы в приложении с объектами DomainIntity и DomainRepository. DomainIntity - модель предметной области, DomainRepository - CRUD операции позволяющие сохранять модели в различных хранилищах, файлы, БД, мемкеш и т.д.
Использую phpactiverecord
Присматриваюсь к spot2, phpDataMapper, Doctrina
Хотелось бы услышать мнение какой вариант лучше подходит для средних проектов.