Las novedades de Propel 1.3 (segunda parte)

En la primera parte de las novedades de Propel 1.3 comentamos que el cambio más significativo era el uso de PDO en vez de Creole para la capa de abstracción de datos.

Otro cambio importante es que PDO no trabaja con ResultSet, por lo que el método doSelectRS() de Propel va a cambiarse por doSelectStmt(). Este nuevo método devuelve una sentencia ejecutada, como se muestra en el siguiente ejemplo:

Propel 1.2 y Creole:


$rs = AutorPeer::doSelectRS(new Criteria());
while($rs->next()) {
$autor = new Autor();
$autor->hydrate($rs);
}


Propel 1.3 y PDO:

$stmt = AutorPeer::doSelectStmt(new Criteria());
while($fila = $stmt->fetch(PDO::FETCH_NUM)) {
$autor = new Autor();
$autor->hydrate($fila);
}



El cambio a PDO va a suponer que se deben realizar cambios en el código PHP que utilizaba la API de Creole. Por suerte, la API de PDO es bastante similar a la de Creole, por lo que los cambios necesarios serán fáciles de detectar. La guía de actualización a Propel 1.3 incluye un ejemplo de estos cambios sencillos:

Propel 1.2 y Creole

$con = Propel::getConnection(AlgunaTablaPeer::DATABASE_NAME);
$stmt = $con->prepareStatement("SELECT FROM alguna_tabla WHERE nombre = ?");
$stmt->setString(1, $nombre);
$rs = $stmt->executeQuery();
while($rs->next()) {
print "Nombre: " . $rs->getString("nombre") . "\n";
}


Propel 1.3 y PDO:

$con = Propel::getConnection(AlgunaTablaPeer::DATABASE_NAME);
$stmt = $con->prepare("SELECT
FROM alguna_tabla WHERE nombre = ?");
$stmt->bindValue(1, $nombre);
$stmt->execute();
while($fila = $stmt->fetch()) {
print "Nombre: " . $fila['nombre'] . "\n";
}


Recuerda que todavía no se ha definido la fecha en la que Symfony incluirá la versión 1.3 de Propel, pero las novedades y cambios que introducirá hacen que sea importante conocerlas con tiempo.

Fuente: Upgrading to Propel 1.3

Comentarios

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

8 de marzo de 2007

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.