Los Templates
Antes de dar un paso más en la explicación, quiero hacerles unos comentarios respecto al "simple" sistemita de templates que utilizaremos en el foro.Ahora, mi idea al utilizar templates, fue la de que los usuarios, pudieran modificar a su gusto el aspecto del foro, sin por ello tener que tocar el código de la aplicación. Esto es algo que el tutorial anterior no tenía en cuenta e incluía todo el código HTML de salida dentro del código mismo del foro, lo cual no es siempre recomendable. Lo que haremos en este caso es utilizar archivos .html que dentro contendrán solo diseño ( o sea, código HTML ) y en los lugares en los que deseemos colocar contenido "dinámico", utilizaremos el formato simple para mostrar el contenido de variables, esto es : <?=$variable?>.
Para "interpretar" un template, primero lo leemos en memoria utilizando la función file() y luego utilizaremos una simple función a la que le pasaremos como parámetro el template y las variables que hay que reemplazar. Para muestra, basta un botón:
ejemplo.html
Nombre: <b><?=$nombre?></b><br>
Edad : <b><?=$edad?></b><br>
Domicilio : <?=$domicilio?>
<hr>
ejemplo.php
<?php
function mostrarTemplate($tema, $variables)
{
//var_dump($variables);
extract($variables);
eval("?>".$tema."<?");
}
$agenda = array(
"0" => array("nombre"=>"Marcelo",
"edad"=>"25", "domicilio"=>"VeraCRuz
342"),
"1" => array("nombre"=>"Alejandra",
"edad"=>"18", "domicilio"=>"Los
Olmos 67"),
"2" => array("nombre"=>"Micaela",
"edad"=>"23", "domicilio"=>"Prof.
Mariño 8")
);
$tpl = implode("", file("ejemplo.html"));
foreach($agenda as $registro)
{
mostrarTemplate($tpl, $registro);
}
?>
Aquí vemos como, partiendo de los datos que tenemos
en un array, los mostramos basándonos en un simple
template. La función mostrarTemplate toma como
parámetros el contenido del template y un array
asociativo con los valores a reemplazar. La función
de PHP extract() se encarga de pasar estos valores al
ámbito en el que se llama la función, en
este caso, el ámbito de la función. Por
lo que si tenemos un arreglo del tipo $a = array("clave"
=> "valor"), al ejecutar extract($a), entonces
pasaremos a tener una variable disponible, de nombre $variable
y con "valor" como contenido. Luego, la función
eval() se encarga del resto, o sea, de ejecutar todo el
código ( el del Template) que se le pasa como parámetro.
Algunos se preguntarán, porqué no hacemos simplemente un "include" ? La respuesta es muy siemple. Eficiencia. La función include implica un acceso a disco, lo cual la hace bastante "costosa" en términos de eficiencia. Así que leyendo el template 1 sola vez en memoria, y luego utilizándolo varias veces, hacemos un mejor uso de los recursos.
Teniendo estos temas en cuenta, es que podemos
seguir ahora con el desarrollo el Foro.
< Anterior: La Estructura
Siguiente: Un Tema por vez >
| Anterior | Usuarios que han visto este tema también han visto...
- Comprobar si existe el dominio del correo en PHP Información legal | Política de Privacidad | Contacte con nosotros Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.Página generada el 26-05-2012 a las 00:26:37 |