This plugin is mostly a workaround for propel 1.2/1.3 limitations. If it's an
option, you should consider using Propel 2.0 (or at least 1.5)
instead.

Since quite a bit of time, I've been faced with an annoying problem on every
projects I use propel on. Propel builders only generates some specific cases
selection methods, which consists of pretty ugly copy paste of the same code to
populate the objects, and if your needs are not satisfied by the finite little
number of propel handled cases, you'll have to either use pure SQL, or write a
custom doSelect method. That seems okay at first sight, but it is not. In fact,
you're about copypasting the propel generated method, and that's a rude
violation of D.R.Y. principle.

I found no solutions during the two last years, but maybe things will change
soon with the new sfPropelImpersonatorPlugin. This plugin is aiming at doing
arbitrary object population based on informations provided by propel's
introspection methods (DatabaseMap/TableMap/ColumnMap) to link populated
objects.

The plugin is currently in very early stage, but is working pretty well for my
needs, and I'm looking forward to know what others are thinking about it.