2010-05-30 11 views
6

Encontré Smarty, que es un motor de plantillas. Pero también están los marcos Zend, CakePHP. ¿Es Smarty como Zend, o son completamente diferentes? Smarty simplemente separa la lógica de la pantalla: ¿es esto similar a un marco como Zend?¿Cuál es la diferencia entre Smarty y Zend?

Respuesta

12

Smarty es un motor de plantillas, mientras que Zend es un framework completo de php.

Smarty

Smarty es un sistema de plantillas web escrito en PHP. Smarty se promueve principalmente como una herramienta para la separación de preocupaciones, que es una estrategia de diseño común para ciertos tipos de aplicaciones. [1] [2]

Smarty genera contenido web mediante la colocación de etiquetas especiales Smarty dentro de un documento. Estas etiquetas son procesadas y sustituidas por otro código .

Las etiquetas son directivas para Smarty que están delimitadas por delimitadores de plantilla. Estas directivas pueden ser variables, indicadas por un signo de dólar ($), funciones, declaraciones lógicas o de bucle. Smarty permite a los programadores de PHP definir funciones personalizadas que pueden ser a las que se accede utilizando etiquetas Smarty.

Smarty tiene por objeto simplificar compartimentación, permitiendo la presentación de una página web para cambiar separadamente del fondo. Idealmente, esto alivia los costos y esfuerzos asociados con el mantenimiento del software. En la aplicación exitosa de esta estrategia de desarrollo , los diseñadores son protegidos de la codificación back-end, y los programadores PHP están protegidos de la codificación de presentación .

Zend

ZF es un marco de uso a voluntad. No existe un paradigma o patrón de desarrollo único que todos los usuarios de Zend Framework deban seguir, aunque ZF proporciona componentes para los patrones de diseño MVC, Table Data Gateway y Row Data Gateway. Zend Framework proporciona componentes individuales para muchos otros requisitos comunes en el desarrollo de aplicaciones web. [1]

Zend Framework también busca promover las mejores prácticas de desarrollo web en la comunidad PHP; las convenciones no son tan comúnmente usadas en ZF como en muchos otros marcos, más bien se formulan sugerencias estableciendo valores predeterminados razonables que pueden ser anulados para cada requisito específico de la aplicación ZF. [4]

+2

So Smarty es más 'básico' y simplemente separa el código en lógica/pantalla. Mientras que Zend te da el marco completo, funciones y demás. ? – jpjp

+0

@jpjp: Eso es :) :) – Sarfraz

+1

Para repetir lo que dijo. Smarty es solo un motor de plantillas. Zend es un marco completo de php. Zend tiene una gran cantidad de componentes con los que puede conectarse y desarrollarse, incluido un motor de plantillas, una lista de control de acceso, ftp, etc. Piense en Zend como una biblioteca de herramientas, mientras que Smarty es solo una herramienta. – WhiskeyTangoFoxtrot

2

Zend es un marco de aplicación web de código abierto.

Smarty es un sistema de plantillas web.

Verificar Zend y Smarty.

1

Zend es una implementación JIT del lenguaje PHP. Procesa todo su código PHP y lo compila en código máquina para su ejecución. Los marcos de almacenamiento en caché como APC proporcionan el almacenamiento en caché de códigos de operación para mejorar el rendimiento.

Smarty es un lenguaje de plantilla implementado en PHP. Separa la lógica de negocios y la presentación.

Zend -> PHP -> Smarty -> su página web

+0

Creo que el OP significaba Zend Framework, no el Zend Engine subyacente :-) – richsage

+0

Sí, leyendo las otras respuestas es bastante claro. ¡Oh bien! –

3

Un motor plantilla (Smarty) simplemente proporciona un método para separar la pantalla del código real.

Un marco (Zend, CakePHP, Drupal etc) proporciona esencialmente una extensión del lenguaje en la parte superior de PHP. Luego usa este 'idioma' para escribir su sitio. Le proporciona métodos para realizar tareas más complejas fácilmente (más al menos). Por lo general, ayuda con cosas como el acceso a bases de datos, seguridad, i18n/l10n, almacenamiento en caché, plantillas, etc.

+0

¡esa es una buena descripción! Entonces, con un marco, ¿hacen todo el trabajo "sucio" y solo usan las funciones? Entonces, ¿un framework tiene funciones similares que pueden ayudarte con validaciones y demás? – jpjp

+0

Sí. Por ejemplo, echa un vistazo a http://book.cakephp.org/view/125/Data-Validation –

0

Está mezclando de alguna manera esos conceptos.

Un motor de plantillas no separa la lógica de la pantalla, pero es un medio para lograr eso.

Un marco, por otro lado, es una abstracción en la cual el código común que proporciona funcionalidad genérica puede ser anulado o especializado selectivamente por código de usuario que proporciona funcionalidad específica [Wikipedia]. Algunos marcos, incluido Zend Framework, proporcionan una implementación del patrón arquitectónico MVC (Model View Controller), lo que facilita aislar la persistencia, la lógica y las capas de presentación.

Cuestiones relacionadas