php - plantillas - twig
¿Por qué usar un motor de plantillas con un marco? (6)
A menos que permita etiquetas cortas,
{$foo}
es mucho más legible que
<?php echo $foo; ?>
Multiplicado sobre un proyecto grande, se suma.
Recientemente descubrí el framework PHP Kohana (que es increíble) y estaba leyendo un hilo sobre su uso junto con un motor de plantillas como Smarty o Twig . Mi pregunta es ¿por qué molestarse? Seguramente un framework MVC, por definición, es un motor de plantillas. Incluso PHP "crudo" es, sin dudas, un motor de plantillas. ¿Qué posibles beneficios hay de agregar otro nivel de abstracción además de lo que ya está presente en un marco como Kohana?
EDITAR - Me doy cuenta de que un framework MVC no es lo mismo que un motor de plantillas, pero seguramente la parte V hace el mismo trabajo. Quizás una mejor forma de expresar las cosas sería; ¿por qué agregar un motor de plantillas sobre la parte V de una estructura MVC?
En primer lugar, PHP sin procesar NO es un motor de plantillas.
A continuación, el marco MVC define que el marco se divide en Modelo, Vista y Control. No significa que el marco tenga un motor de plantillas, aunque la Vista se puede integrar con un motor de plantillas nativo o externo. Por lo tanto, el marco puede tener o no un motor de plantillas.
En tercer lugar, View! = Plantilla. La vista solo se refiere a cómo se muestran los datos; normalmente no hay plantillas involucradas, mientras que el motor de plantillas hace referencia a un código capaz de colocar datos en las plantillas, lo que reduce en gran medida la necesidad de modificar todos los archivos cuando puede modificarlos en las plantillas
Por último, los usuarios de frameworks pueden preferir usar un motor de plantillas más común como Smarty sobre el motor de plantilla nativo en el framework. No necesita aprender las nuevas etiquetas en el motor de plantilla nativo.
MVC implementa la administración de plantillas PHP, si trabajas en un equipo con diseñadores web sería mejor usar plantillas HTML. Smarty y Twig son famosos y buenos. De todos modos, simplemente elija el motor de plantilla con el que se sienta más cómodo.
Tengo dos buenas razones por las que puedo pensar para hacer esto ...
- Crear marcado que se repite en todo el sitio en un formato consistente es más fácil, además de que puede actualizarlo más tarde sin demasiada reducción.
- Si esto es para una empresa real, las personas que determinan el contenido probablemente no estén muy familiarizadas con HTML, y mucho menos con PHP. Tener un lenguaje de plantilla simple que mantenga los estilos mirando correctamente y genere marcas válidas sin mucho conocimiento del código es realmente útil.
Una gran razón por la que desearía un motor de plantillas separado es porque el PHP sin procesar es demasiado para la presentación de su sitio. Si solo está haciendo su sitio, y tiene una buena idea de cómo las plantillas del sitio deben encajar, entonces esto no es realmente un inconveniente, pero para proyectos más grandes, se interpone en el camino.
Si su proyecto ha superado a un único desarrollador, o si desea agregar un diseñador incluso antes de eso, es probable que PHP sea un lenguaje demasiado difícil para expresar la presentación. Los lenguajes de plantillas creados a propósito tienen la ventaja de que son simples y no lo son. darte tanta cuerda como ahorcarte.
Los proyectos más grandes, incluso cuando no requieren mucha información de múltiples desarrolladores, pueden hacer que la forma libre de PHP simple sea un poco difícil de manejar. el motor de plantillas creado específicamente proporciona (o impone) una estructura básica de cómo cada plantilla se ajusta con el resto.
Mauris ya ha Mauris por qué MVC! = Motor de plantillas, pero me gustaría añadir que cuanto más potente es el motor de plantillas, más limpio y conciso son sus plantillas. Esto hace que sea especialmente fácil para las personas que no están familiarizadas con PHP editarlas (por ejemplo, si un diseñador / desarrollador front-end necesita editar el HTML). En general, los MVC no cuentan con este tipo de funcionalidad.
Mire este example de Smarty. Nunca he usado el motor y responder esta pregunta es la primera vez que veo su marcado, pero ya puedo decir exactamente qué está haciendo.
Además, la cantidad de código que tiene que escribir es notablemente menor debido a que Smarty y otros motores se encargan de cosas mundanas como colores de fila alternativos y contenido alternativo para conjuntos de datos vacíos en el primer ejemplo, y cosas tontas como formatear <select>
listas en este ejemplo .