Las novedades de Propel 1.3 (tercera parte)

En la primera parte de las novedades de Propel 1.3 comentamos el uso de PDO en vez de Creole y la segunda parte introdujo los cambios en el ResultSet. En esta última parte, se muestran el resto de cambios importantes de Propel 1.3.

El primer cambio importante es la cache de los objetos (llamada object instance pooling). Este mecanismo evita tener que volver a aplicar el hydrating a los objetos para los que ya se ha aplicado (proceso hydrating en Symfony). Además, de esta forma se puede devolver la misma instancia del objeto cada vez que se utilizan los métodos retrieveByPK() y doSelect().

Las relaciones uno-a-uno cambian significativamente y de hecho es uno de los cambios que puede hacer que deje de funcionar la aplicación. Básicamente, si se tiene una clave externa que también es la clave primaria de la tabla, los nombres de los métodos generados automáticamente por Propel van a ser en singular y no en plural. La guía de actualización a Propel 1.3 contiene un ejemplo con código (en inglés).

Propel 1.3 utiliza la clase DateTime de PHP 5.2 para manejar las fechas. No obstante, para mantener la retrocompatibilidad, los métodos no devuelven objetos de tipo DateTime salvo que se indique de forma explícita en la configuración de Propel. Además, este tipo de objetos permite manejar de forma transparente cualquier fecha anterior a la época Unix (1 de Enero de 1970) sin necesidad de utilizar los tipos de fechas bu_
.

Por último, uno de los cambios que más solicitaban los usuarios se hace realidad en Propel 1.3: el uso de expresiones como valor por defecto para las columnas. Se han creado 2 nuevos atributos para las columnas: defaultValue (que sustituye a default) y defaultExpr. Ejemplo:


<column name="nombre_columna" type="TIMESTAMP" defaultexpr="CURRENT_TIMESTAMP">

<column name="nombre_columna2" type="TIMESTAMP" defaultvalue="2001-01-01">

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

12 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.