2010-10-26 22 views
21

que estaba leyendo en alguna parte que PHP es un lenguaje de plantillas. ¿Qué es exactamente un lenguaje de plantillas? ¿Qué hace que PHP sea uno? ¿Cuáles son los otros lenguajes de plantillas?¿Qué es un lenguaje de plantillas?

+0

El término básicamente define el alcance del uso. Un lenguaje de plantillas tiene propiedades a medio camino entre un lenguaje de programación (completo) y un lenguaje de macro (expansión). – mario

Respuesta

18

La premisa detrás de un lenguaje de plantillas es que el lenguaje está "incrustado" en algún otro documento maestro. Específicamente, en su documento promedio, el tamaño total del documento es principalmente el origen del documento que el idioma de la plantilla.

Consideremos dos ejemplos inventados:

print "This is a simple document. It has three lines." 
print "On the second line is my name: " + firstName 
print "This is the third line." 

vs

This is a simple document. It has three lines. 
On the second line is my name: $firstName 
This is the third line. 

Se puede ver en el primer ejemplo, el lenguaje envuelve el texto del documento. En el segundo ejemplo, el texto del documento es el más frecuente, con solo un poco de código.

Algunos lenguajes de plantillas son lenguajes generales de uso general, como PHP, ASP.NET y Java's JSP. Otros son más limitados diseñados específicamente para plantillas, como Velocity y FreeMarker (ambas utilidades para Java).

Muchos procesadores de texto, como Microsoft Word, tienen sus propias capacidades de creación de plantillas, comúnmente denominadas "Combinación de correspondencia".

7

PHP no es necesariamente un lenguaje de plantillas, pero puede tipo de pasar esa prueba, debido a la forma en que se interpreta.

Cuando se lee el archivo PHP, solo se analiza el código dentro de las etiquetas de bloque PHP (<?php y ?>), el resto se pasa a la salida. Entonces, un intérprete PHP podría procesar un archivo .html y no ocurriría nada, se generaría el HTML.

Si algunas de las áreas del archivo HTML tenían etiquetas y códigos PHP, se interpretarían y probablemente generarían algunos datos en esas ubicaciones. Esto podría considerarse una plantilla. Por lo general, es la idea de tener una capa de salida y luego tener contenido dinámico que la acompaña. Puede tener una plantilla de página de producto y, a continuación, basarse en alguna variable de entrada, completar solo los detalles de un producto/imágenes/etc. en la plantilla.

Hay motores de plantillas reales para PHP (Smarty para uno ... http://www.smarty.net/) que puede consultar.

nunca he sido fan de ellos, pero una gran cantidad de personas encuentran éxito con él.

9

Un lenguaje de plantillas básicamente es un lenguaje que permite definir marcadores de posición que más adelante se deben reemplazar para implementar diseños. Obviamente, los lenguajes de plantilla modernos no solo son compatibles con marcadores de posición, sino también con bucles y condiciones que a menudo son necesarios para diseñar una página web. Algunos incluso admiten técnicas más avanzadas pero útiles como la herencia de plantillas, macros y sandboxing.

sobre PHP: Como el propio PHP podría ser interpolado en HTML que puede ser utilizado como un lenguaje de plantillas. Por otro lado, PHP es bastante detallado, especialmente si las etiquetas cortas no están habilitadas.

Un motor de plantilla rico y rápido es Twig. Lo recomendaría por Smarty. Ofrece más características (más notablemente la herencia de plantillas) y es más rápido.

Cuestiones relacionadas