6 minutos de lectura ( 1179 palabras)

Nuevo MVC para Joomla! CMS

Nuevo MVC para Joomla! CMS

En las últimas versiones lanzadas de Joomla!, el nuevo MVC jugará un papel importante. A través de mi proyecto Google Summer Of Code, he avanzado los primeros pasos para ello.

Introducción

Joomla! es un CMS famoso en todo el mundo que utiliza la arquitectura MVC (Modelo-Vista-Controlador) para construir sus componentes. Ha estado ahí desde hace muchos años y ha pasado por muchos cambios para encajar en diferentes tipos de necesidades. Para obtener más información acerca de la implementación actual del MVC, puedes consultar la Documentación Joomla! [1] y [2]. Hace muy poco, los desarrolladores Joomla! tuvieron la idea de hacer esta arquitectura más flexible para superar los retos del futuro. Como resultado de esto, este nuevo MVC se introduce en el Joomla!.

Primer vistazo al Nuevo MVC

Si eres nuevo en el desarrollo de componentes Joomla! sería beneficioso que repasaras la arquitectura MVC existente al menos una vez. Para los que ya han participado en el desarrollo de componentes, será fácil identificar las diferencias. Esta sección te guiará a través de los cambios, uno por uno.

Nueva estructura de carpetas

Es prácticamente igual a la arquitectura del MVC existente. Pero los nombres de carpetas son singulares. Así que en el nuevo MVC se espera que los usuarios utilicen nombres de carpetas distintos.

Fichero único para el controlador

Este es un cambio importante en el nuevo MVC. El nuevo MVC tiene un archivo independiente para cada controlador. Hay ventajas especiales en este diseño que serán discutidas en este artículo más adelante. En el MVC existente sólo hay un archivo que contiene todas estas tareas de control. 

Método único para el controlador

Dentro de un controlador, la estructura es muy simple. Solo hay un método, llamado "ejecutar". La funcionalidad completa de dicho controlador se agrega a ese método "ejecutar". Este cambio hace de los controladores algo muy fácil de entender y de acceder. 

Nuevas librerías para MVC

Para el nuevo MVC, las librerías/carpetas Joomla contiene 3 nuevas subcarpetas: controlador, modelo y vista. Cada carpeta contiene su respectiva clase Base, que debe ser utilizada en la implementación de las clases del controlador, el modelo y la vista de los componentes. Actualmente éstos se incluyen dentro de la última release del CMS. Estas clases a nivel de librería son la base de cualquier nuevo componente MVC [3]. La principal ventaja de esto es reducir la redundancia de código en las clases heredadas, que se utilizan en el MVC existente. 

Conforme pasa el tiempo, la clase más reutilizable se añadirá a las librerías. Puedes ver algunos ejemplos de posibles controladores reutilizables en la carpeta del controlador: com_config [4] o la carpeta del cms: com_cache-com_checkin repository [5]. Gracias a la carga automática de clases, en algunos casos, los componentes no requerirán ningún controlador propio o no uno por clase. Además verás que las clases de la Vista también se vuelven muy simples y las clases del Modelo son similares a las existentes en el actual MVC. En el nuevo MVC la clase del Modelo no tiene porque ser hija de la clase JModelBase, pero también puede ser una clase de tabla en función de la exigencia.

Ventajas del Nuevo MVC

Al crear un componente Joomla! usando el nuevo MVC, como desarrollador detectarás los siguientes puntos:

Fact

Existing MVC

New MVC

Support For Web Services

No

Yes

Learnability

Hard

Easy

Controllers, Models and Views

Fairly Complex

Very Simple

Extend using

Clases Legacy

Clases Base

Number of class files

Menos

Varía en el componente

En este momento los siguientes componentes se han transferido a un nuevo MVC y están esperando en la cola de peticiones de extracción. 

  •     com_config     [4]

  •     com_checkin     [5]

  •     com_cache     [5]

Administración del Front-end

Hasta ahora te he mostrado la importancia del nuevo MVC. Ahora es posible que quieras ver algunos logros especiales de este cambio. La administración del front-end es una de esas cosas que ya he implementado con el nuevo MVC. A través de la administración del front-end, los Usuarios Joomla! tendrán la oportunidad de hacer varios cambios sin acceder al backend en absoluto. Creo que esto sería muy útil para atraer a los usuarios novatos, ya que el back-end (vista administrativa) contiene paneles de configuración muy complejos. 

Como paso inicial, fui capaz de crear con éxito la vista de administración del front-end para la Configuración Global y el Gestor de plantillas. A continuación se encuentran algunas de las características que ofrecen los componentes de administración del front-end:

  1.     Cambiar el nombre del sitio

  2.     Cambiar el logo del sitio

  3.     Cambiar el color de la plantilla

  4.     Cambiar el color de fondo

  5.     Poner el sitio online/offline

  6.     Añadir Meta descripciones

Con el tiempo habrá más funcionalidades que se añadan a la administración de front-end.

Lo que los desarrolladores dicen 

"El nuevo MVC nos dejó simplificar el código drásticamente y aumentar la flexibilidad de las aplicaciones, especialmente en términos de la prestación de servicios web, así como HTML. Cuando combinas eso con JApplicationWeb es muy potente. Tener algunas clases MVC compartidas en el CMS significará hacer nuevas extensiones y aplicaciones de una manera mucho más fácil”. ~ Elin Waring, ex presidente de Open Source Matters 

"En cuanto al uso de las nuevas interfaces MVC, diseñado para ser una aplicación agnóstica, en comparación con el" legado "MVC, diseñado para apoyar al CMS, las interfaces más recientes permiten un mayor nivel de flexibilidad para los desarrolladores. La aplicación de seguimiento de incidencias es un gran ejemplo de cómo se pueden implementar las interfaces y los routers web para mantener tu código tan ligero como práctico. "~ Michael Babker, Joomla! Equipo de Liderazgo de Producción 

"El nuevo MVC de Joomla va a hacer la vida del desarrollador mucho más fácil. Este proyecto hace a Joomla adelantar unos cuantos pasos y hacer que su Framework cobre vida. El nuevo MVC hace que sea ágil el crear aplicaciones más versátiles y el nuevo front-end de configuración es la evidencia de ello”. ~ Ofer Cohen, miembro de la Junta y Contribuyente de Código, Open Source Matters

¿Cómo puedes contribuir?

Si estás interesado en el nuevo MVC, por supuesto, también puedes contribuir. Todavía la conversión al nuevo MVC está a medio camino y  se necesita hacer más para obtener el máximo beneficio de esta arquitectura.

Por lo tanto, las contribuciones se pueden hacer de las siguientes maneras:

  1. Aportando tiempo de pruebas de los nuevos componentes de MVC (sería un buen comienzo para comprender el MVC)

  2. Convirtiendo componentes de back-end al nuevo MVC

  3. Convirtiendo componentes de front-end al nuevo MVC

  4. Programando tus propias extensiones, ayudando a adaptar algunos de los otros paquetes en las librerías que no funcionan a la perfección con ello todavía. (Ej.: Por ejemplo com_menus necesita una pequeña actualización para trabajar con el nuevo estilo).

Referencias 

[1] Modelo-Vista-Controlador - http://docs.joomla.org/Model-View-Controller

[2] Introducción al desarrollo de un componente MVC -http://docs.joomla.org/J3.1:Developing_a_MVC_Component/Introduction

[3] Documentación de la plataforma Jooma MVC -http://joomla.github.io/joomla-platform/?chapters/packages/mvc.md

[4] Implementando com_config en el nuevo MVC- https://github.com/joomla/joomla-cms/pull/2063

[5] Implementando com_cache y com_checkin en el nuevo MVC -https://github.com/joomla/joomla-cms/pull/1989

0
Te invitamos a ser parte del CLT
Los foros siguen siendo nuestro mejor amigo
 

Comentarios

¿Ya està registrado? Ingresa Aquí
No hay comentarios por el momento. Sé el primero en enviar un comentario.

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/