Blog de Javier Smaldone

Todos los días se aprende algo viejo

Comentarios recientes

  • Jeff en Is MySQL a toy RDBMS?
  • hernan en Cómo funciona el DNS
  • jose Suarez en Por qué Linus Torvalds no es un héroe
  • bruno en Fibertel, una porquería
  • bayrak en Google y la NSA

23 comentarios

exoddus dijo:
17 de Octubre de 2006 a las 8:32  

Muy buen artículo ;-)

Hass dijo:
17 de Octubre de 2006 a las 10:20  

mnm.uib.es/gallir/posts/2006/09/26/820/ : Plantillas PHP: there is no silver bullet

http://www.lnds.net/2006/09/not_so_smarty.html : “En el caso de Blogmemes, el 80% del tiempo de rendering de una página se consume en Smarty, y estoy hablando sólo de tiempo en el servidor.”

Pues parece que NO, ya va el servidor de Menéame bastante cargado como para encima añadirle más carga

javier dijo:
17 de Octubre de 2006 a las 10:37  

He encontrado un análisis realizado por Ricardo Galli, autor de Menéame, sobre el por qué no se ha utilizado Smarty en su desarrollo.

Nadie sabe mejor que él los requerimientos de velocidad y la carga de trabajo del servidor de meneame.net, así que tengo que aceptar su palabra.

Sin embargo, me llama la atención el hecho de que Slash (el software detrás de Slashdot y Barrapunto) utilice sin problemas Template-Toolkit. Quizás Template-Toolkit sea mucho más eficiente que Smarty (¡algo más a favor de mi querido Perl!)

JarFil dijo:
18 de Octubre de 2006 a las 22:46  

Muy bonito, pero ¿qué tienes exactamente en contra de esto?

http://rafb.net/paste/results/7mbLGC93.html

Pixote dijo:
19 de Octubre de 2006 a las 7:56  

Hola,
la verdad que hay que tener una atención especial al rendimiento que se obtenga al manejar templates, en mi opinión prefiero utilizar una libreria que proporcione elementos html, por ejemplo, si quiero un href en php:
echo $html_class->href(“titulo”,”enlace”,”otros”)
en perl utilizo la libreria CGI;)
La ventaja que se tiene es también el fácil mantenimiento y alto rendimiento.
Un ejemplo es de esto que os cuento es Oscommerce http://oscommerce.qadram.com/

MikiBroki dijo:
19 de Octubre de 2006 a las 13:26  

excelente artículo.

Personalmente uso una forma que considero “mejor” aunque cada uno tiene sus preferencias.

Simplemente crear una página HTML, enlazada con unf fichero javascript en la que usando AJAX hago llamadas a la BD, y luego… mucho javascript.

De ese modo da igual que cambies de PHP a JSP o ASP, los ficheros HTML ni javascript los tocas para nada.

¿Lo malo? que hay que poner algo más de atención a la seguridad.

Un saludo.

anla dijo:
19 de Octubre de 2006 a las 13:58  

Este tema está muy a la orden del día en mi empresa. Te cuento, somos 3 programadores y cada uno trabaja a su manera. uno va a su bola total q no viene al caso, yo uso el método malo de integrar consultas a BD en las páginas HTML para mostrar las tablas y todo eso, y el tercero usa un MVC propio.

El problema, es cuando los diseñadores tienen q modificar algo del diseño, q no saben donde meter mano. Conmigo no tienen mucho problema pq el código html, más o menos, se entiende. El problema lo tienen con el q usa MVC, y para cambiar un simple menú se las ven crudas.

Así q, hast q los diseñadores no sepan algo de php o de las estructuras de smarty y similares, seguiremos trabajando al modo malo.

Una pena, lo sé….

vitxo. dijo:
27 de Octubre de 2006 a las 14:14  

No hay que perder de vista que el propio lenguaje PHP puede usarse tranquilamente para representar la lógica de la aplicación, de hecho, supongo que Smarty traducirá su lenguaje de plantillas a PHP y mantendrá una copia “compilada” en caché.

En Sitepoint hace tiempo publicaron un artículo muy majo (http://www.sitepoint.com/article/beyond-template-engine) con una interfaz sencilla orientada a objetos donde las plantillas no tenían más que PHP.

Es decir, la idea no es incrustar el HTML en PHP, sino hacer todo lo contrario, que es para eso para lo que estaba pensando originalmente y además, no hacerlo “a lo loco”, sino separando correctamente en archivos/clases/módulos según su role en la aplicación. De hecho, en Rails, aunque puedes elegir el motor de plantillas que te salga del alma, por defecto se usa el propio Ruby con el erb.

Por lo tanto, no es necesario abstraerse mucho (al final puedes hacer un include tranquilamente de la plantilla) ni utilizar librerías de terceros para separar la definición de la lógica del negocio y el modelo de la lógica de la presentación. Que no digo que no se deba hacer eh? :-) Pero particularmente sobrecargar la capa de la presentación con Smarty con la excusa de que “es más designer-friendly” puede añadir un overhead a tu aplicación que en casos como los de menéame.net no te puedes permitir.

Y con esto ya termino, ésa es otra. Si un diseñador tiene que aprender la sintaxis de Smarty, por qué no la de PHP? :-)

un saludo.

vitxo. dijo:
27 de Octubre de 2006 a las 14:15  

Corrección, primer párrafo: quería decir “lógica de la presentación” en lugar de “..de la aplicación”. :)

nicolas dijo:
28 de Octubre de 2006 a las 7:43  

My buen articulo javier. Quisiera saber tu opinion de CakePHP (clon de rails para PHP).

Lito dijo:
7 de Noviembre de 2006 a las 7:46  

Tu ejemplo de PHP no es muy válido, ya que se puede conseguir un resultado muy correcto sin hacer lo que tú enseñas:

People Listing

First Name
Last Name

No sé si este código se pegará…

javier dijo:
7 de Noviembre de 2006 a las 7:53  

Con respecto a la pregunta de Nicolás, CakePHP parece ser una muy buena implementación del patrón MVC para PHP. Personalmente no lo he usado más que para jugar, por eso no podría evaluar su eficiencia, pero parece estar en el camino correcto.

Con respecto al comentario de Lito (lamentablemente el código PHP no se pegó bien), la corrección de los resultados no está en discusión, lo que trato de destacar es la posibilidad de obtener código de fácil mantenimiento y escalabilidad separando la lógica del programa de la lógica de presentación (interfaz) a nivel de código.

ImZyos! dijo:
10 de Noviembre de 2006 a las 23:08  

Yo estoy trabajando en un Framework de PHP4, basado en el modelov MVC pero sin ser tan extenso como el resto como phpcake synfony etc, de momento funciona bien, el problema viene con el el css cuando se introduce la siguiente estructura pagina.ext/otracosa
alguien sabe porque?

chaval dijo:
23 de Noviembre de 2006 a las 16:43  

ImZyos!, quizas sea(si te entiendo bien) por el cambio de la ruta al css desde el archivo renderizado por php, una solucion es ocupar rutas absolutas.

Javier dijo:
18 de Diciembre de 2006 a las 12:45  

He encontrado artículos extremadamente interesantes y productivos en este blog, pero este puntualmente me deja sabor a poco.
Se menciona Smarty a secas sin hacer siquiera una reseña sobre las características de un motor de templates…si lo dan como algo asumido entonces también debería serlo el punto de separar el código de la presentación, y así la nota no tendría sentido

e-mypes dijo:
26 de Enero de 2007 a las 14:55  

Podria ser
Creamos una pagina HTML que enlaza a un fichero javas.. y utilizando ajax se pueden hacer llamadas a la base de datos.
Asi al cambiar de php a js o asp no se modifican los ficheros.

jesusvld dijo:
31 de Marzo de 2007 a las 1:17  

Interesante artículo, es una forma de ahorrarnos muchas lineas de codigo y sobre todo tiempo. Saludos

paco dijo:
8 de Abril de 2007 a las 19:37  

Para vosotros desarrolladores mirar esta herramienta ideal para hacer paneles de control para vuestros sitios web. http://www.mkmefeelgood.com/

19 de Abril de 2007 a las 14:24  

Vaya te felicito realmente muy bueno….

Suerte con tu proyecto…‼

27 de Agosto de 2007 a las 16:11  

Estoy con Javier en eso de que el artículo “sabe a poco” con ese gran título. Smarty se puede dar por supuesto en un diseñador (o más bien desarrollador) con un poco de experiencia, pero lo que realmente esperaba era una introducción a la mejor herramienta para aplicaciones web en este momento: Ruby on Rails.
Sólo se menciona (positivamente) de pasada….
Aún así un buen tema para un artículo.

Saludos

Carlos Ceron dijo:
12 de Marzo de 2008 a las 16:15  

Me parece muy interesante el artículo, cada uno tiene su opinión y yo como desarrollador web de ya hace varios años estoy muy de acuerdo en separar la lógica de la interfaz, cuando vienen los mantenimientos de la aplicación es que se nota esto.

Una pregunta , veo en el código people.html que tienen un código encerrado entre llaves {}, eso lo entiende HTML o es porque est’a en Smarty?

Mil gracias!

jsanroman dijo:
23 de Abril de 2008 a las 17:22  

Coincido con alguno de los comentarios en que ese mismo foreach en php podría tener exactamente la misma limpieza que el html mostrado con smarty:

xxx XXX

y la clase encargada de la lógica de negocio sería mucho mas sencilla.
Saludos

Pingback & Trackback
mygif
17 de Octubre de 2006 a las 8:18  

Aplicaciones web con plantillas…

En este artículo se analizan las ventajas de la utilización de plantillas(templates) para el desarrollo de aplicaciones web, con un breve ejemplo introductorio. ¿Menéame debería utilizar plantillas, tal como lo propone su autor?…

Artículo al azar

Deja tu comentario: