dominios y alojamiento web en hostalia

Corriente de opinión en contra de PHP Smarty

19 de February de 2009
Valoración del artículo:

Etiquetas relacionadas
Publicado en: Actualidad

Compartir
El sistema de plantillas para PHP Smarty se desaconseja en diversos sitios web y blogs.

19/02/2009 - Smarty, como muchos podrán saber, es un sistema de plantillas para PHP, muy utilizado y que a nuestro modo de ver y sin nunca haberlo puesto en producción, parece muy potente.

La noticia es que diversos sitios web y blogs especializados en el desarrollo en PHP están divulgando informaciones y posts en rechazo al uso de Smarty: "Say NO to Smarty".

La filosofía inicial de Smarty es, en su planteamiento, muy buena. Según publican en la página web de este componente para PHP, Smarty permite separación total entre diseño y programación, es decir, entre aspecto y lógica de negocio. En teoría, con Smarty, se puede crear un sistema de plantillas que pueden editar diseñadores, sin tener que estar familiarizados con la codificación en PHP. Por otra parte, los programadores, pueden escribir código PHP sin tener que preocuparse con el aspecto que tendrá la salida de sus scripts. Las ventajas son diversas, como una teórica mayor facilidad de mantenimiento, de trabajo en grupo entre distintos profesionales, etc.

Según leemos en diversos sitios, en la práctica y según sus críticos, Smarty (o cualquier otro sistema de plantillas) no cubre los objetivos que se propone. Dicen que primero, por mucho que se empeñen, es muy complicado o imposible separar toda la lógica de negocio de la presentación. Además los diseñadores van a tener que acabar aprendiendo algún lenguaje (si no es PHP, pues será el lenguaje de Smarty para sustituir variables o implementar tomas de decisión o bucles). Apuntan también que no es cierto que se pueda cambiar todo el diseño sin tener que mover una línea de código, ya que el diseñador puede desear mostrar un dato que antes no figuraba en un lugar y para ello el programador tendría que cambiar el script y enviar ese dato a la nueva plantilla que lo muestra.

Pero el problema que apuntan que más preocupante parece es que el sistema de plantillas requiere una infraestructura de diversos directorios, donde está la plantilla, la plantilla compilada, la caché del código generado para una página, etc. Manejar todos estos archivos, aunque muchos de ellos se crean automáticamente, significa un engorro para el desarrollador y una carga innecesaria para el servidor web. A la hora de cambiar cualquier código en la plantilla, la plantilla tiene que volver a compilarse, pero en ocasiones habrá que borrar a mano la plantilla antigua compilada, porque si está en la estructura de directorios no se compila de nuevo por si sola.

La guinda es que a veces, por una estrategia inadecuada en el uso de plantillas, podemos encontrar errores en tiempo de ejecución en códigos que ha generado Smarty automáticamente, que no son nuestros y por tanto es muy complicado de revisar y corregir. Con todo, lo que ocurre es que dejamos de programar en PHP para programar plantillas, con un lenguaje similar pero diferente, con lo que tenemos que aprender algo nuevo.

Luego Smarty, u otros sistemas de plantillas del mercado, interpreta el código de la plantilla para generar un código PHP, sobre el que no tenemos control. Acabamos pues a merced de un código ajeno a nosotros que hace las cosas por si mismo y que por ello desciende el control que tenemos con la aplicación.

En definitiva, que hay amigos y detractores de todas las tecnologías y softwares, pero está bien que nos planteemos seriamente si queremos o no adoptar nuevas herramientas para el desarrollo de nuestros sitios, si van o no a hacernos las cosas más sencillas realmente. Yo realmente no tengo experiencia ni conocimientos para saber aconsejar o no al sistema de plantillas de Smarty, sólo me limito a expresar estas opiniones, que quizás tengan fundamento.

Puedes encontrar más información en: http://nosmarty.net/

Comentarios
Fueron enviados 10 comentarios a la noticia
3 comentarios no revisados
7 comentarios revisados:
Por: Epols
19/2/2009
Hola,

yo soy programador en Java aunque para según que tipo de desarrollos también utilizo php.

La verdad es que lo que creo que hace falta en php es un estilo de JSTL que permita mediante tags poder recorrer un array, obtener atributos de un objeto, etc.

Muchos pensarán que puede resultar una solución parcial ya que o bien finalmente el programador tiene que intervenir o el maquetador debe aprender un nuevo lenguaje. Esto es realmente relativo, con buenas prácticas de maquetación se puede dejar un código HTML legible y que permita al programador ver claramente donde se debe substituir el ejemplo por el código JSTL (en el caso de Java) necesario.

También debo añadir que no conozco Smarty pero me ha entrado curiosidad por el tema. Lo que he dicho hasta ahora es una simple opinión de un desarrollador más.
Por: Rotceh
20/2/2009
Yo trabaje en un desarrollo donde se utilizaba smarty como motor de plantilla y la verdad siempre me gusto la idea de poder separar todo el codigo php del html, pero aunque nunca preste asunto al tema que hoy se propone, tuve que aprender su sintaxis e incluso a realizar algoritmos sin mucho grado de complejidad con la utilizacion de smarty, que mirandolo desde la tónica que brinda este tema, era parecido al algoritmo en php pero con la sintaxis de smarty.
No soy de los que diria "Don´t get Smarty" pero estoy de acuerdo que no brinda la "completa" facilidad que propone.
Sobre tema de los errores que se mencionan, nunca tuve ese tipo de problemas, siempre las plantillas se compilaron sin ningun tipo de errores, espero que no haya sido solo "suerte".

Y con respecto al diseñador de interfaz de usuario(maquetador), él tenia conocimientos de php e igual tuvo que aprender smarty, por ese aspecto no existe ningun tipo de comodidad al respecto.
Por: David Cornadó
24/2/2009
Tiene mucha razón la plataforma que comentas sobre Smarty.

Hace año y medio que llevo el mantenimiento y creacion de varios sites hechos con smarty. Lo primero, y digo lo primero porque es al cabo de dos horas, que ve un desarrollador minimamente experimentado es que PHP quizás no programarás en las plantillas pero deberás aprenderte el lenguaje de Smarty cono lo cual de que nos libramos ? De nada, una forma más de engañar al público.

Hará unos 6 años, empezé a desarrollar por cuenta propia un gestor de contenidos, al cual finalmente también le cree plantillas y me di cuenta de lo mismo.

Hace tiempo desarrollé una pequeña aplicación con Cocoon que requiere de XML y XSL para pintar por pantalla y aunque tambien decian los creadores que habian logrado separar la capa de programación de la de diseño, no es del todo cierto, puesto que en las páginas HTML se encuentran etiquetas técnicas también.

Por tanto, es un problema al que hoy en dia aun no encontré solución, al menos en PHP.

Gracias

saludos,

kurna
Por: Quitos!!!
27/2/2009
Llevo desarrollando Web con Php 7 años, de los cuales 4 años, llevo usando Smarty, y considero, que tanto las librerias, como FrameWorks, facilitan la vida, de la mejor forma en que la tecnología que tenemos al momento lo permite.

Y se entiende que las personas que no tienen experiencia en desarrollo y con las mas minimas intenciones de aprender mas alla de lo que tienen a simplevista, se les complique algo que no tiene tanta complejidad.

Es como pedirle a Smarty que haga todo sin meterle codigo extra, no se si esperan que Smarty lea la mente de los diseñadores y el codigo se acomode sin tener que poner nada???

Considero que como humanos tenemos dos copciones, que son:

1.-Ser de mente limitada y cerrada y no querer ni tener intencion de aprender mas alla de lo que ya nos costo trabajo aprender.

2.-Aprender y darse cuenta de que, lo que sabemos es solo la punta del IceBerg y seguir aprendiendo mas, y darse cuenta de lo que parece dificil, realmente TE FACILITA LA VIDA.

MAS NO ESPERAN QUE LEA LA MENTE Y LO HAGA POR SI SOLO.

Saludos a los de No Smarty, OJALA PUEDAN AGRANDAR SU CRITERIO Y MENTE UN POKITO MAS.
Por: Ricardo
05/3/2009
SMARTY es la solución más sencilla que existe para que se entiendan progrmadores y diseñadores.
Es tan sencillo mover de lugar un cambio, como modificar todo el diseño a un nuevo desde 0.
Es un gestor de plantillas por lo tanto se deben usar plantillas, si usas banners, armas un tpl por cada tipo y posicion de banners, si utilizas menus, armas una plantilla por cada menu y asi con cada seccion de tu web.
Ahora si se pretende que rediseñar y reprogramar un sitio sea algo sencillo es como pretender que la tecnología de diseño, programación e implementación se detengan.
A los diseñadores les fascina poder meter mano en el código, y que mejo que lo hagan sobre una plantilla y no sobre el PHP!!!
También podes crear tus propios plugins, insertarlos y utilizarlos como los necesites y solo agregando un pequeño fichero con la funcion que sea necesaria.
SMARTY es muy potente, sencillo y sobre todo totalmente amigable.
Por: Gustavo
12/3/2009
Hola a todos. Para los que comenzamos en este mundo de la programación en PHP no es muy dificil darse cuenta que ha medida que utilizamos código php, html, jsp y ajax en una misma hoja de programación se va haciendo complicado el seguimiento y depuración del código. ahora tengo una duda... tendré algún problema si uso ajax con smarty ????

Lo que puedo decir que separar el codigo php del html me parece saludable y digo me parece por que recien hoy 12.Mar.09 me enterado que existe smarty en http://php.org.pe/ , y lo voy intentar para porder sacar mis propias conclusiones desde luego agradeciendo y considerando las suyas.

De otro lado creo que nosotros los que nos gusta o en muchos casos necesitamos comentar para recepcionar información debemos quisas incluir una ayuda visual sea un video o .ppt, que yo si lo he hecho en otras secciones y temas, pero en este web site no será por motivos obios jejejeje, todo esto para ayudar a los principiantes en este tema.

Gracias a todos.
saludos
tavorenacehoy@yahoo.com

¿Reportes en PHP?
¿AGATA? .... es decir me ayudan.
Por: Wizanchez
27/3/2009
A mi parecer la verdad es que por separa el condigo php y html vamos a programas doble vez ,, la primera es lo que nuestra aplicacion quiera hacer y la segunda es programar en smarty para que el html lo pueda interpretar..
Ahora con las nuevas tendencias de programacion que digamos que en cierta parte en mi empresa se utiliza que es la programacion extrema ,, no aplica y no sirve de mucho este tipo de implementacion smarty,, ya tenemos suficiente con el javascript si queremos, utilizar web service de otras aplicaciones ,, y demas
ahora creo que esta clase de herramienta coplicaria mas el uso de ajax ya que esto utiliza etiqueta ID ,, y ya el desarrollador se meteria con parte de diseño,, a mi parecer es perder el timepo utilizando una herramienta que puede ser obsoleta para aplicaciones que se necesita con rapidez y rediseño en caliente......

Con una buena organizacion de codigo y Objetos se puede evitar este tipo de herramientas como smarty ....

Noticias breves
Participa
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...