php - rapidamente - que es la hidratacion
¿Qué es la hidratación de Doctrine? (3)
La hidratación es un método utilizado para devolver los resultados de la consulta. Por ejemplo:
HYDRATE_ARRAY
: esto le devolverá una matriz de registros representados por otra matriz:$q = Doctrine_Query::create() ->from(''Post p'') ->setHydrationMode(Doctrine::HYDRATE_ARRAY); $resultSet = $q->execute(); // $resultSet is an array foreach ($resultSet as $post) { // $post is an array echo $post[''title'']; }
HYDRATE_RECORD
- Esto te devolverá una colección ( Doctrine_Collection ) de objetos:$q = Doctrine_Query::create() ->from(''Post p'') ->setHydrationMode(Doctrine::HYDRATE_RECORD); // Unnecessary, HYDATE_RECORD is default method $resultSet = $q->execute(); // $resultSet is an Doctrine_Collection object foreach ($resultSet as $post) { // $post is an Post object echo $post->getTitle(); echo $post[''title'']; // Each Doctrine''s Model object implements ArrayAccess interface so this is possible echo $post->myCustomMethod(); }
HYDRATE_SINGULAR_SCALAR
-HYDRATE_SINGULAR_SCALAR
el valor de la primera columna del resultado de la consulta:$q = Doctrine_Query::create() ->select(''p.created_at'') ->from(''Post p'') ->where(''p.id = ?'', 321) ->setHydrationMode(Doctrine::HYDRATE_SINGULAR_SCALAR); $createdAt = $q->execute(); // $createdAt has value of first column from first record from result set (eg.: 2008-04-06 21:22:35)
Hay algunos métodos más, puede leer acerca de cada uno en la documentación.
He leído sobre la hidratación en la documentación de la doctrina, pero todavía no puedo entender de qué se trata.
¿Podría alguien explicar por favor?
Referencia de documentación de Doctrine2 que explica HYDRATION: http://www.doctrine-project.org/docs/orm/2.0/en/reference/dql-doctrine-query-language.html#query-result-formats
$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
It will return just a simple array instead of a doctrine collection object.