En lugar de implementar sistemas de plantillas sobre un sistema de plantillas (PHP mismo), creando gastos generales por defecto, puede optar por una solución más robusta como XSL Transformations, que también cumple con MVC princples (siempre que separe sus datos- recuperación; además, yo personalmente dividí la lógica de mostrar el XML con diferentes archivos).
Imagine tener la siguiente información en una matriz, que desea mostrar en una tabla.
Array
{
[car] => green
[bike] => red
}
permite crear fácilmente una secuencia de comandos que da salida a esta información en XML:
echo "<VEHICLES>\n";
foreach(array_keys($aVehicles) as $sVehicle)
echo "\t<VEHICLE>".$sVehicle."</NAME><COLOR>".$aVehicles[$sVehicle]."</COLOR></VEHICLE>\n";
echo "</VEHICLES>\n";
Dando como resultado el siguiente código XML:
<VEHICLES>
<VEHICLE>
<NAME>car</NAME>
<COLOR>green</COLOR>
</VEHICLE>
<VEHICLE>
<NAME>bike</NAME>
<COLOR>red</COLOR>
</VEHICLE>
</VEHICLES>
Ahora bien, esto es todo excelente, pero que no lo hará mostrar en un buen formato. Aquí es donde entra XSLT Con un poco de código simple, se puede transformar esto en una tabla:.
<xsl:template match="VEHICLES">
<TABLE>
<xsl:apply-templates select="VEHICLE">
</TABLE>
</xsl:template>
<xsl:template match="VEHICLE">
<TR>
<TD><xsl:value-of select="NAME"></TD>
<TD><xsl:value-of select="COLOR"></TD>
</TR>
</xsl:template>
Et voila, usted tiene:
<TABLE>
<TR>
<TD>car</TD>
<TD>green</TD>
</TR>
<TR>
<TD>bike</TD>
<TD>red</TD>
</TR>
</TABLE>
Ahora, para este ejemplo simple, esto es un poco de overkill; pero para estructuras complejas en proyectos grandes, esta es una manera absoluta de mantener su lógica de scripting lejos de su marcado.
Eso es lo que hago hoy en día. Procese los datos en un script, incluya el script apropiado 'view'. En el script de vista, solo echo las variables dentro de HTML y uso if-else, loops cuando sea necesario. – Imran
Muy, muy buen consejo. Mucho mejor que solo "usar MVC". – da5id
Sí, a veces me arrepiento de que nadie me lo haya dicho durante mis primeros años. La gente debería dejar que los nooles hagan algo, en lugar de pedirles que tengan un comienzo perfecto para cada tecnología nueva que encuentren. –