Object-relational mappers are a nice way of simplifying data store interactions, by abstracting the data model into a OO class structure. Or put another way, don’t write SQL, write code that is storage agnostic.

 my $thing = Thing->new( id => 123 )->load;
 # the above is mock code 
 # representing something like:
 UPDATE table things 
    SET foo = 'bar' 
    WHERE ID = 123;

I’ve used a couple of different Perl ORMs over the last four years with great joy: DBIx::Class and (mostly) Rose::DB::Object. Now I’m looking for a suitable PHP project for my toolbelt.

Wikipedia has a good starting list.

Some contenders include:

Looks nice but depends on Zend Framework so a bit heavy. Handles cascading actions on related objects.
The most popular (or at least most-mentioned). It has its own special query language (DQL), which is a philosophical turn-off. Isn’t SQL+PHP good enough? But I see the DQL is optional.
Rocks PHP Library
Ambitious. The docs make it seem a little like the Rose framework in its goals: an ORM, a Form manager, a web framework. There’s a DB abstraction layer that claims to support many different db flavors. It seems pretty young though.
Mature. But it uses this external XML definition file which just seems crazy. Again, isn’t SQL+PHP enough?
Based on Propel but simpler. No external XML file (+1). Uses same PDO db abstraction layer as Propel.
I was initially hopeful about this one but it appears abandoned.
My co-worker turned me on to this one (thanks Sean!). I really like the looks of it so far and will be spending some quality time testing it out.