I can’t find a way to set the default hydrator in Doctrine. It should be available. Right?
The above documentation page explains how to create a custom hydrator. The drawback here is that you need to “specify” the hydrator each and every time you execute a query.
I figured this out by reading Chris Gutierrez’s comment and changing some stuff.
First, define an extension class for Doctrine_Query. Extend the constructor to define your own hydration mode.
Then, in your bootstrap, tell Doctrine about your new class.
Chris Gutierrez defined the attribute for the connection instead of globally but I have more than one connection and I want to use this default for all of them.
Now you don’t have to call Doctrine_Query::setHydrationMode() every time you build a query.
Here’s more information
http://www.doctrine-project.org/projects/orm/1.2/docs/manual/configuration/en#configure-query-class
EDIT: Changes below
I have found a problem with the above. Specifically, doing something like “Doctrine_Core::getTable(‘Model’)->find(1)” will always return a hydrated array, not an object. So I have altered this a bit, defining custom execute methods for use in a Query call.
Also, I added memory freeing code.