Pautas para el uso de Propel

LIBP-0104 (Libro de pautas)

Pautas

TítuloCarácter
Evitar el uso de arrays temporalesObligatoria

Evitar el uso de arrays temporales

Las plantillas pueden trabajar directamente con los arrays de objetos por lo que no es necesario crear un array temporal de datos para la plantilla

Cuando se utiliza Propel (proveedor de ORM), los objetos creados ya contienen todos los datos, por lo que no es necesario crear un array temporal de datos para la plantilla. Los programadores que no están acostumbrados a trabajar con ORM suelen caer en este error. Estos programadores suelen preparar un array de cadenas de texto o de números para las plantillas, mientras que, en realidad, las plantillas pueden trabajar directamente con los arrays de objetos.

El problema es que con el proceso de creación de objetos hace que crear el array sea inútil, ya que el mismo código se puede reescribir utilizando this. De esta forma, el tiempo que se pierde creando el array se puede aprovechar para mejorar el rendimiento de la aplicación.

Si realmente es necesario crear un array temporal porque se realiza cierto procesamiento con los objetos, la mejor solución es la de crear un nuevo método en la clase del modelo que devuelva directamente ese array. Si por ejemplo se necesita un array con los títulos de los artículos y el número de comentarios de cada artículo, la acción y la plantilla deberían ser similares a:

// En la acción
$this->articulos = ArticuloPeer::getArticuloTitulosConNumeroComentarios();
// En la plantilla
<ul>
<?php foreach ($articulos as $articulo): ?>
<li><?php echo $articulo[0] ?> (<?php echo $articulo[1] ?> comentarios)</li>
<?php endforeach; ?>
</ul>