28 de Junio, 2005

Entendiendo studs

Sí, como suena: studs y no struts.

El Studs MVC Framework+ es un port de Struts a PHP. Desde luego siempre referido a estructura, funcionamiento, etc; porque Struts está realizado en Java.

Se trata de un framework que implementa el patrón MVC en PHP siguiendo la estela del exitoso Jakarta Struts de la fundación Apache.

El trabajo de Dan Allen es impresionante. Dice que todo empezó como un port, para conocer los fundamentos internos de las aplicaciones J2EE; pero hasta él mismo admite que ha llegado más lejos de lo que esperaba.

Para conseguir la magia necesaria para tener un Struts en PHP ha implementado tres librerías donde se sustenta Studs:

  • Horizon: Es un API orientada a objetos que encapsula y extiende las funciones existentes en PHP para dotar al lenguaje de importaciones (puro estilo Java), carga de clases, excepciones en tiempo de ejecución (no entiendo muy bien cómo lo hace; intuyo lo que comúnmente identificamos como pirula :P), etc.
  • Stratus: Es un contenedor de servlets. Se encarga de procesar las peticiones HTTP para despacharlas al servlet indicado. Aparte de dotar a PHP de servlets como en Java, dota a las páginas de estado persistente entre llamadas (:o ayer mismo me vi obligado a hacer una pirula con formularios y Javascript para conseguir eso mismo).
  • Phase: Se trata de un parser compatible con JSP. Implementa un sistema completo de plantillas aunque, según Allen, la potencia está en las marcas que añaden las librerías de JSP. En otras palabras: PSP (PHP Server Pages).

No hay casi documentación sobre Studs (o no he sabido encontrarla), aunque todo lo que leamos referente a Struts es perfectamente aplicable (sustituyendo Java por PHP, claro).

Así que consultando un poco sobre Struts me he encontrado con algunas claves sobre el invento:

  • Difícil aprendizaje: No resulta fácil hacerse con él, y para proyectos pequeños o con plazos de entrega ajustados, no es conveniente emplearlo si no tenemos destreza con el framework porque nos arriesgamos a dedicar más tiempo al aprendizaje que al propio desarrollo.
  • Documentación online escasa: Incluso he leído por ahí que es peor (la documentación del proyecto de Apache es algo liosa y nada adecuada para novatos). Si sumamos a esto que no hay nada sobre Studs, se complica aún más el aprendizaje.
  • Complejidad y falta de transparencia: Es un sistema complejo y rígido en el que no existen atajos. No es fácil quedarse con el cuadro general del invento.

Estos tres puntos parecen suficientes para descartar Studs como plataforma de desarrollo. Bueno, anoche estuve leyendo código durante una hora más o menos, y Struds merece el esfuerzo.

Puede que muchas de mis conclusiones sean equivocadas, es uno de los riesgos de leer código que no comprendemos :D, pero anoche noté la fuerza brotar y eso es buena señal ;). Iba a dejar caer por aquí mis descubrimientos, pero prefiero asentar un poco más mis ideas.

Algo de documentación para ir calentando: Studs QuickStart Guide y Demystifying Jakarta Struts (los 6 pasos que siempre repiten son clave para hacerse con el tema).

Anotación por Juan J. Martínez, clasificada en: struts, studs.

Hay 2 comentarios

Gravatar

¿Has notado la fuerza brotar?. No quisiera pensar mal :P. Yo también he estado mirando muy por encima Studs con una doble sensación. Por un lado he pensado que era de sencillo aprendizaje comparado con otras soluciones similares

Por otro lado me he sentido inutilizado como programador, algo que quiero cambiar. Espero que el tiempo que voy a arriesgar tratando de entender algún framework MVC sirva para quitar ese peso de encima.

por r0sk, en 2005-06-28 13:04:09

Gravatar

Que poco místico eres, coño :D

Allen dice que empezar con Studs es relativamente fácil, porque enseguida puedes hacer cosas y ver la potencia que tiene... hasta que te das de boca contra el suelo porque hace falta conocer Struts.

Pero bueno... es un arma de doble filo. ¿Por el mismo precio aprender Struts? Interesante...

por Juanjo, en 2005-06-28 13:08:02

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: