Pautas para el uso de Propel
- Área: Construcción por Capas y Frameworks de Aplicaciones PHP
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Pautas
Título | Carácter |
---|---|
Evitar el uso de arrays temporales | Obligatoria |
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>