Buenas, estoy refactorizando el código de una web para hacerlo menos infumable y separar HTML y PHP. Os pongo un ejemplo:
Función PHP:
function usuario($id, $dato) {
$row = select("SELECT * FROM usuarios WHERE id = $id");
$datos = Array(
'nombre' => $row['nombre'],
'email' => $row['email']
);
return $datos[$dato];
}
Y luego en el HTML imprimo los valores así:
<div class="nombre"><?=usuario(1337, 'nombre')?></div>
<div class="email"><?=usuario(1337, 'email')?></div>
Esto queda muy bonito (o no, a mi me gusta xD) y hace muy legible el código, pero obviamente hace la misma consulta dos veces para un solo usuario, y cuando son bastantes más datos los que hay que mostrar se incrementa el tiempo de carga.
No sé si utilizando clases sería la solución, nunca he trabajado con ellas en PHP. Quizá podría confiar en la caché de MySQL y seguir utilizando el modelo que he puesto, pero supongo que habrá una mejor solución y qué mejor momento que implementarla ahora.
¿Qué pensáis vosotros?