Here's what sparked this question if you're interested: RE: a PHP project, got into a bit of a debate on using DAOs and basically it came down to someone saying they had bad experiences with DAO and therefore want to just use our framework's data access implementations (ActiveRecord-based btw). I am for adding an extra layer of abstraction that allows us to constrain data access as well as increase code portability in case major version updates or framework changes occur (a fairly likely possibility in our case) so we don't need to spend as much time adapting to their data access methods. Naturally we had fun debates over what to do. Honestly I can work around either, but again, I want to know your thoughts!
refs: [1] http://stackoverflow.com/questions/2100115/i-found-jpa-or-alike-dont-encourage-dao-pattern [2] http://stackoverflow.com/questions/3818589/java-ee-architecture-are-daos-still-recommended-when-using-an-orm-like-jpa-2 [3] http://stackoverflow.com/questions/1748238/pros-and-cons-of-the-use-of-dao-pattern