Smarty

Software captura de pantalla:
Smarty
Detalles de software:
Versión: 3.1.5
Fecha de carga: 11 May 15
Licencia: Libre
Popularidad: 1

Rating: nan/5 (Total Votes: 0)

Smarty no es en realidad un "motor de plantillas", sería más exacto describirlo como un "Plantilla / Presentación Marco." Es decir, se ofrece el programador y la plantilla de diseño con una gran cantidad de herramientas para automatizar tareas comúnmente tratados en la capa de presentación de la solicitud. Hago hincapié en la palabra Marco porque Smarty no es un simple motor de plantillas de etiquetas de sustitución. A pesar de que puede ser utilizado para un propósito tan simple, su atención se centra en el desarrollo y despliegue de la aplicación rápida y sin dolor, mientras que el mantenimiento de alto rendimiento, la escalabilidad, la seguridad y el crecimiento futuro.
Así es Smarty adecuado para usted? Lo que se pretende es utilizar la herramienta adecuada para el trabajo. Si desea sencilla sustitución variables, es posible que desee mirar a algo más simple o incluso liar. Si desea un marco de plantillas robusto con numerosas herramientas para ayudar a usted como su aplicación evoluciona hacia el futuro, Smarty es probablemente una buena opción.
¿Por qué usarlo?
Uno de los objetivos de diseño Smartys principal es facilitar la separación de código de la aplicación de la presentación. Normalmente, el código de la aplicación contiene la lógica de negocio de su solicitud, por escrito y mantenido de código PHP. Este código se mantiene por los programadores. La presentación es la forma en que su contenido se presenta al usuario final, que se escribe y se mantiene en los archivos de plantilla. Las plantillas son mantenidos por los diseñadores de plantillas.
En su función más básica, el código de aplicación recoge el contenido, lo asigna al motor de plantillas y lo muestra. El contenido podría ser algo así como el título, lema, el autor y el cuerpo de un artículo de prensa. El código de la aplicación no tiene ninguna preocupación de cómo se presentará este contenido en la plantilla. El diseñador de la plantilla es el responsable de la presentación. Ellos editar los archivos de plantilla, añadiendo marcas y llevarlo hasta su finalización. Normalmente, esto implica cosas como etiquetas HTML, hojas de estilo en cascada y otras herramientas proporcionadas por el motor de plantillas.
Este paradigma sirve para varios propósitos:
) Los diseñadores no puede romper el código de aplicación. Pueden meterse con las plantillas de todo lo que quieran, pero el código permanece intacta. El código será más fuerte, más seguro y más fácil de mantener.
) Los errores en las plantillas se limitan a las rutinas de manejo de errores Smartys, haciéndolos tan simple e intuitiva como sea posible para el diseñador.
) Con la presentación en su propia capa, los diseñadores pueden modificar o rediseñar completamente desde cero, todo ello sin la intervención del programador.
) Los programadores no están ensuciando con las plantillas. Pueden ir por mantener el código de la aplicación, el cambio de la manera el contenido se adquiere, por lo que las nuevas reglas de negocio, etc. sin alterar la capa de presentación.
) Las plantillas son una representación cerca de lo que será el resultado final, que es un enfoque intuitivo. Los diseñadores no les importa cómo el contenido se llevó a la plantilla. Si tiene datos extraños en la plantilla como una sentencia SQL, esto abre el riesgo de romper el código de aplicación por la eliminación accidental o alteración por el diseñador.
) Usted no está abriendo su servidor para la ejecución de código PHP arbitrario. Smarty tiene muchas características de seguridad incorporadas en los diseñadores así no romper la seguridad, ya sea intencional o accidental. Ellos sólo pueden hacer lo que están confinados en las plantillas.
Aunque el código de aplicación se separa de presentación, esto no significa necesariamente que la lógica se separa. El código de la aplicación, obviamente, tiene lógica, pero las plantillas puede tener lógica basada en la condición de que es sólo para la presentación. Por ejemplo, si el diseñador quiere alternar colores de las filas de la tabla o algún contenido asignado, pueden mayúsculas. Esta es la lógica de presentación, algo que el programador no debe preocuparse. ¿Cuántas veces has tenido algún presentación que aparece en una sola columna y luego quería que en dos o tres columnas, por lo que el código de la aplicación necesita ajustarse para dar cabida a esto? Un mejor enfoque consiste en asignar el contenido en una sola matriz y dejar que la plantilla de manejar la presentación. Esto simplificará su aplicación y mantener sus plantillas flexibles. Smarty suministra las herramientas para manejar este tipo de situación.
Esto no quiere decir que Smarty le impide poner lógica de la aplicación en la plantilla, hay que tener un poco de autodisciplina. He aquí un ejemplo de la incorporación de la lógica de negocio en la plantilla (que es la derecha, evitar hacer esto si es posible):
{If $ smarty.session.user y ($ user_type eq "editor" o $ user_type eq "admin")}
editar
{/ If}
Los controles lógicos si el usuario está conectado y que son ya sea un editor o el administrador, a continuación, se les permite editar este modo la casilla de edición aparece. Esa es la lógica que pertenece en el código de aplicación. La plantilla no se preocupa por lo que las credenciales de este usuario tiene, sólo tiene que saber si se muestra el cuadro de edición o no! Así que echemos un vistazo a un enfoque más adecuado:
{If $ edit_flag}
editar
{/ If}
Es hasta el programador de la aplicación para asignar los $ edit_flag, un simple y fácil de entender variable en la plantilla. De esta manera la plantilla ya no se basa en la estructura de datos subyacente. Si el formato de la estructura de datos de la sesión cambia nunca, nada necesita ser ajustado en la plantilla.
Ahora echemos un vistazo a algunas cosas que puedes hacer con Smarty. Una cosa que puede hacer es funciones personalizadas. Estas son las etiquetas en la plantilla que ejecutan una tarea determinada. Ejemplo:
{Archivo html_image = "masthead.gif"}
Aquí tenemos una función llamada "html_image". Esta función toma la imagen dada en el atributo "file" y hace todo el trabajo necesario para llegar con el siguiente código HTML:

La función de imagen hizo la tarea de averiguar la altura y la anchura y el suministro de la bandera borde predeterminado. Por supuesto usted podría utilizar la etiqueta HTML estático en la plantilla en su lugar, pero esto demuestra cómo una función personalizada se puede utilizar para simplificar una tarea muy común. El diseñador puede centrarse en el diseño y menos en la parte técnica. Por otra parte, si el diseñador decide dejar una imagen de tamaño cabecera diferente en, la plantilla no necesita ajuste.
html_image es una función que viene con Smarty. También puede hacer sus propias funciones personalizadas. He aquí otro ejemplo de lo que se podría quedar así:
{Type html_link = "artículo" id = texto "abc123" = "Fuego saca Hotel"}
Se trata de utilizar una función personalizada llamada "html_link". Viene con el siguiente código HTML:
Fuego saca hotel
¿Qué quiere lograr esto? Por un lado, el diseñador no tiene que preocuparse por el formato de un URL para un artículo. Con las direcciones URL no modificables, ¿qué pasa si un día el programador decide limpiar las cosas, y cambia la sintaxis URL de /display_article.php?id=abc123 a / ART / abc123? Tendríamos que editar cada plantilla con una URL artículo. Esto es sólo otro ejemplo de cómo una función de plantilla puede hacer plantillas fáciles de mantener.
Ahora un poco de programadores y plantillas. Anteriormente se ha mencionado que el programador no tiene cuidado de lo que hacen las plantillas con el contenido. A nivel conceptual esto es cierto, pero en el mundo real que no van a esperar que el diseñador de la plantilla a tener que construir todas las plantillas de la nada. Después de todo, la lógica de negocio que hace a determinar lo que pertenece al contenido de las plantillas. Así, el programador normalmente plantillas esqueleto de configuración para el diseñador para empezar. Esto por lo general contiene los elementos primas como las variables de contenido y sección bucles, y tal vez un par de etiquetas de marcado simples para que no comienzan con el contenido en un gran lío. He aquí un ejemplo de una plantilla esqueleto que recorre una lista de artículos y los muestra en una tabla:


{Nombre de la sección = bucle arte = $ articulo}


{/ Sección}
{$ articulo [arte] .headline}
{$ articulo [arte] .Date}
{$ articulo [arte] .Autor}

La salida puede ser algo como esto:







La conquista del Oeste
02 de diciembre 1999
John Wayne
equipo pierde, el entrenador se cierra
02 de febrero 2002
John Smith
Cocina Gourmet
23 de enero 1954
Betty Crocker

Ahora, para algunas preguntas comunes:
¿Por qué usar plantillas en absoluto? ¿Qué es tan difícil de escribir En lugar de {$ title}?
Hacer las cosas más fáciles de leer no era un objetivo de diseño, pero más de un efecto secundario. Uso de plantillas tiene enormes beneficios, muchos de los cuales se han explicado anteriormente. Ya que estamos en un entorno de la plantilla de todos modos, {$ title} es menos extraño que , Sobre todo cuando se empieza a observar en largas páginas de contenido, así que era bastante evidente que una sintaxis más simple ayuda a hacer las plantillas más fácil de leer y mantener.
Plantilla de tomar tiempo para analizar, por lo que las aplicaciones mucho más lento.
Eso puede ser cierto en algunos casos, pero con Smarty que, no es más lento que la ejecución de un script PHP. En la primera ejecución de una plantilla, Smarty convierte los archivos de plantilla en scripts PHP (llamada plantilla compilación.) A partir de entonces, el script PHP es sólo incluido. Si unimos esto con un acelerador de PHP y que realmente tiene un ambiente de plantillas rápida con una sobrecarga mínima.
Smarty es demasiado complicado, ¿cómo puede ser tan rápido?
El núcleo de Smarty es bastante magra considerando lo que es capaz de hacer. La mayor parte de su funcionalidad radica en plugins. La arquitectura plugin está diseñado de manera que sólo los plugins necesarios se cargan bajo demanda. Con este marco, añadiendo incluso cientos de nuevos plugins no afectará el rendimiento. Esto hace Smarty rápido, escalable y flexible.
Smarty también tiene características de almacenamiento en caché que puede refrescar y mantener dinámicamente partes de la página en caché a su gusto. El almacenamiento en caché almacena la salida de las plantillas compiladas, ahorrando la necesidad de ejecutarlos en cada invocación.
Toda esta charla sobre aceleradores, cómo se ejecuta Smarty sin uno?
En realidad funciona bastante bien sin él. Smarty no requiere un acelerador, pero la plantilla propios archivos tomará ventaja de uno, algo que es único a Smarty (que yo sepa). Si usted no tiene un acelerador, la ejecución de plantilla no es tan rápido pero no lento por cualquier medio, ya que no se analizan! También guarde todos los demás beneficios y características de Smarty. Además, dado que los aceleradores están disponibles gratuitamente en realidad no hay excusa para no estar utilizando una. Le ayudarán rendimiento con todas las aplicaciones PHP, usando Smarty o no.
¿Cómo puede ser más fácil de mantener?
Hay cosas que no se pueden explicar, pero sólo experimentaron. El beneficio de separación de la lógica de la aplicación de la presentación no se puede enfatizar lo suficiente. Smarty también tiene algunas de las características de manejo de errores bonitos y un built-in de la consola de depuración para que pueda ver la jerarquía plantilla y asignadas las variables de un vistazo. Adición de funciones personalizadas a Smarty es tan fácil como dejar caer en el directorio de plugins y mencionarlas en la plantilla.
Las etiquetas de plantilla no están basados ​​en XML, mi editor no le gusta.
Los {} delimitadores son sólo un defecto, que son fáciles de discernir entre las etiquetas HTML. Si no te gusta, cambiar sus delimitadores o tal vez algo más XMLish como también hay un montón de contribuciones de los usuarios de Dreamweaver y similares, darles un aspecto en el área de contribuciones.
Eso es Smarty en pocas palabras, espero que usted puede agregar a su arsenal de herramientas para la construcción de aplicaciones web. Para realmente aprender más, lea el manual de arriba a abajo, de unirse a los foros y ver lo que la gente está discutiendo

Características .

  • Caching: Smarty proporciona características de almacenamiento en caché de grano fino para cachear la totalidad o partes de una página web prestado, o dejando partes sin caché. Los programadores pueden inscribirse funciones de plantilla como cacheable o no cachable, grupo páginas en caché en unidades lógicas para facilitar la gestión, etc.
  • Archivos de configuración: Smarty puede asignar variables extraídos de los archivos de configuración. Diseñadores de plantilla pueden mantener los valores comunes a varias plantillas en un solo lugar sin la intervención del programador, y las variables de configuración pueden ser fácilmente compartida entre las partes de la programación y de la presentación de la solicitud.
  • Seguridad: plantillas no contienen código PHP. Por lo tanto, un diseñador de plantilla no se desató con toda la potencia de PHP, pero sólo el subconjunto de la funcionalidad a disposición de ellos desde el programador (código de aplicación).
  • Fácil de usar y mantener: los diseñadores de páginas Web no están tratando con la sintaxis de código PHP, pero en lugar de una sintaxis de plantillas fáciles de usar, no muy diferente de HTML plano. Las plantillas son una representación muy cerca de la salida final, acortando dramáticamente el ciclo de diseño.
  • Los modificadores de variables: El contenido de las variables asignadas se puede ajustar fácilmente en pantalla en tiempo con modificadores, como mostrar en toda mayúscula, html-escapado, formatear fechas, truncando los bloques de texto, añadiendo espacios entre caracteres, etc. Una vez más , esto se logra con ninguna intervención desde el programador.
  • Funciones Plantilla: Muchas de las funciones están disponibles para el diseñador de la plantilla para manejar tareas tales como la generación de segmentos de código HTML (desplegables, tablas, pop-ups, etc.), que muestra el contenido de otras plantillas en línea, de enlace sobre matrices de contenido , el formato de texto para la salida de e-mail, en bicicleta, aunque los colores, etc.
  • Filtros:. El programador tiene control total de la producción de la plantilla y el contenido de la plantilla compilado con pre-filtros, post-filtros y filtros de salida
  • Recursos:. Las plantillas pueden ser sacados de cualquier número de fuentes mediante la creación de nuevos manejadores de recursos, y luego usarlos en las plantillas
  • Plugins: Casi todos los aspectos de Smarty es controlada mediante el uso de plugins. Por lo general son tan fácil como colocándolos en el directorio de plugins y luego mencionarlas en la plantilla o su utilización en el código de la aplicación. Muchas contribuciones de usuario en la comunidad también están disponibles. (Vea la sección de plugins del foro y wiki.)
  • Add-ons: Muchos usuarios en la comunidad contribuyó con Add-ons están disponibles como paginación, Validación de formularios, menús desplegables, Calander Fecha Pickers, etc. Estas herramientas ayudan a acelerar el ciclo de desarrollo, no hay necesidad de volver a inventar la rueda o de depuración de código que ya está estable y listo para su despliegue. (Ver la sección de complementos del foro y wiki.)
  • Depuración:. Smarty viene con un sistema incorporado en la depuración de la consola por lo que el diseñador de la plantilla puede ver todas las variables asignadas y el programador puede investigar plantilla representación velocidades
  • Compilar:. Smarty compila plantillas en código PHP detrás de las escenas, lo que elimina el análisis de tiempo de ejecución de las plantillas
  • Rendimiento: Smarty realiza muy bien, a pesar de su gran conjunto de características. La mayor parte de las capacidades de Smarty encuentran en plugins que se cargan bajo demanda. Smarty viene con numerosas herramientas de presentación, lo que minimiza el código de aplicación y dando como resultado más rápido, menos aplicación de desarrollo / implementación propenso a errores. Plantillas Smarty se compilan a PHP archivos internamente (una vez), eliminando los costosos análisis de archivos de plantilla y aprovechando la velocidad de PHP aceleradores de código op.

¿Qué hay de nuevo en esta versión:

  • revertir los cambios de acceso súper globales, y en lugar de depender de USE_SUPER_GLOBALS para seguridad

¿Qué hay de nuevo en la versión 2.6.23:

  • acentos abiertos tira de {matemáticas} ecuaciones (mohrt)
  • error tiro cuando existe la plantilla pero no legible (mohrt)

¿Cuál es nuevo en la versión 2.6.22:

  • Esta versión soluciona un problema que se encuentra con el Smarty 2.6 0,21 liberación y un error del motor PCRE en PHP 5.2. Encadenamiento método se ha eliminado para evitar el error. Encadenamiento Método volverá a aparecer en Smarty 3.

Otro software de desarrollador New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Comentarios a la Smarty

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!