Por favor, haz un clic sobre los anuncios cuando pases por mi blog, ya? =)

JQuery y PHP: separación de la interfaz y el proceso

No hay comentarios
Hace pocos días me he dedicado a probar en profundidad el desarrollo de sistemas web usando la excelente librería de javascript JQuery en conjunto con el framework para PHP Zend Framework. Los resultados han sido muy satisfactorios.

JQuery es un framework, o conjunto de funciones, para manipular los elementos de una página web y para darle llamativos efectos visuales de forma muy sencilla.  Zend Framework es un conjunto de funciones que implementan el modelo MVC (Modelo, Vista, Controlador) para PHP.



Gracias al uso de estas dos librerías se puede lograr separar casi completamente la capa de presentación de las capas de control y del modelo de datos.

La idea general sería como sigue:



Usar Zend Framework para:
  • crear el modelo de datos usando Zend_Db_Table (models)
  • crear unas pocas acciones (actions) que usando vistas (views) generen plantillas de páginas web con el contenido mínimo: headers, ubicación de archivos .css y javascript (el resto del proceso de renderizado de la página podrá hacerse usando JQuery)
  • crear los controladores (controllers) y las acciones (actions) que manejarán las peticiones y respuestas al cliente. Estas serán hechas usando AJAX. Recibirán y enviarán datos en formato JSON ó XML (no devolverán una página web completa).
  • acceder al modelos de datos (base de datos) para registrar y obtener la información requerida
  • controlar el manejo de sesiones y la seguridad del sitio


Usar JQuery para:
  • registrar los enventos en la página web en el lado del ciente
  • crear y modificar los objetos DOM pertinentes para el correcto despliegue de la página
  • controlar los efectos visuales de la página para hacer la  interacción con el usuario más cómoda y  llamativa.
  • enviar las peticiones y recibir las respuestas del servidor. Estas serán hechas usando AJAX. Recibirán y enviarán datos en formato JSON ó XML. 
  • mostrar las respuestas del servidor de la forma adecuada


 Como podemos observar, la interacción entre el cliente y el servidor se resume a dos pasos, mostrados en negrita en los listados de arriba:
  1. el momento en que desde PHP, usando Zend Framework, se renderizan las views con las plantillas html de cada página
  2. el envío y recepción de datos usando formatos estándar  JSON ó XML (aunque podría ser cualquier otro definido previamente).

Usando esta división podríamos fácilmente construir otra página web cliente usando otro framework de javascript. O incluso una aplicación de escritorio usando un  lenguaje como Java, siempre y cuando enviemos y recibamos los datos usando el formato establecido (JSON ó XML). Es más, podríamos cambiar Zend a otro framework de PHP, o tal vez incluso cambiarnos a otra plataforma, como J2EE, y los clientes no deberían ni enterarse de ello.

Las ventajas son múltiples. Al actuar el lado del cliente y el del servidor  de forma independiente, ambos  podrían cambiar su funcionamiento radicalmente sin que el otro se diera por aludido, lo que simplifica enormemente la mantención de un sistema a lo largo del tiempo y facilita las modificaciones.

No hay comentarios :