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.
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.