Este artículo es una traducción del artículo orginal escrito por Matt Thomas para la Joomla! Community Magazine.

¿Qué es el Joomla Framework, porqué lo necesitamos cuando ya tenemos la Joomla Platform?

La próxima generación ...

Esencialmente, el Joomla Framework puede ser pensado como la próxima generación de la Joomla Platform. Los grandes cambios necesarios para introducir avances, como namespacing, tienen enormes problemas de compatibilidad hacia atrás con el CMS y la Platform existente, que básicamente bloquearían el CMS en la versión de la Platfomr que está utilizando en estos momentos. Este cambio presenta una oportunidad para crear una nueva incubadora, para un mayor desarrollo, que podría ser utilizada no sólo por el CMS y las aplicaciones en desarrollo de forma nativa en la Joomla Platform, sino también por el conjunto de la comunidad PHP.

Además, con la Platform actual, es una situación de tómalo todo o nada. Con este nuevo enfoque, todo el mundo será capaz de elegir las partes que realmente necesitan. Un framework basado en componentes (en el sentido de los componentes de Symfony, no a lo que el CMS históricamente se refiere como "componentes") permite que el código nuevo pueda ser añadido, comprobado y fácilmente integrado por usuarios intermedios. Sería mucho más sencillo para el CMS integrar cosas como el trabajo OAuth de Diana, así como JTwitter / JFacebook.

¿Significa esto que la Platform será absorbida de nuevo en el CMS?

Esto significa que todo el trabajo que se ha hecho hasta ahora, a excepción del namespacing, puede ser absorbido de nuevo en el control del CMS. Eso es bueno para el CMS, ya que reduce la doble manipulación que tienen actualmente corrigiendo errores.

¿Significa esto que las extensiones se romperán, o necesitarán ser reescritas, en la próxima versión del CMS?

No, de hecho el cambio evitará que esto suceda. El CMS estará en libertad de introducir partes del nuevo Joomla Framework como necesite, y de una manera que no presente problemas de compatibilidad con las extensiones existentes.

Sin embargo, es importante señalar que no estamos haciendo Joomla Framework compatible hacia atrás con la Joomla Platform. Estamos limpiando todo el código en desuso en el proceso, así como eliminando cualquier resto del código del CMS o paquetes con mantenimiento deficiente. Creemos que esta es una buena estrategia ya que el cambio a namespacing es bastante grande (hay que cambiar el código) y también se cambiará a Composer lo que significa que los desarrolladores tendrán que empezar de nuevo de todos modos.

¿Por qué crear otro repositorio para esto cuando ya hay uno para Platform? ¿Esto no va a confundir a todo el mundo?

Básicamente, la razón es que es mucho más fácil comenzar un nuevo repositorio para hacer todo el trabajo de preparación. Tuvimos largas discusiones y parece que referiéndose a cosas como la "vieja Platform" y la "nueva Platform" sería muy confuso. Cambiar el nombre, y el repositorio, nos permite delimitar muy claramente entre la pila monolítica que es la Joomla Platfomr, y el nuevo código de espacio de nombres y Composer que es el Joomla Framework.

También estamos separando cada uno de los paquetes en su propio repositorio de modo que puedan ser instalados a través de Composer en cualquier entorno que los necesite. Por ejemplo, alguien codificando con Laravel podría querer utilizar nuestro código de Github (lo que sería IMPRESIONANTE). En la actualidad, con la Platform, eso no es posible. Con el Framework, es posible, porque se ha desacoplado de las otras clases en la platform y es capaz de ser utilizado con otros pocos requisitos.

Bueno, suena muy bien. ¿Cuándo estará listo? ¿En qué versión del CMS estará?

¡Buena pregunta! Nuestro objetivo es al menos "reunir de nuevo a Humpty" y que las cosas funcionen de nuevo, pero también de una manera que puedas instalar paquetes individuales y Composer resuelva todas las dependencias.

El CMS no tendrá incluirá nada del nuevo Framework. Se sincronizará todo lo que pueda de la Joomla Platform actual y luego lo más probable es que retiraremos la Joomla Platform como una entidad mantenida independientemente. Todo el trabajo de nuevo irá directamente en el CMS o el Joomla Framework.

¿Significa esto que vamos a ser capaces de utilizar Composer y Packagist con el Framework?

Composer, y su compañero Packagist, se han convertido en el estándar de facto para la integración de las bibliotecas de PHP en sus aplicaciones. La nueva Joomla Platform (a.k.a. el Joomla Frameword) necesita adaptarse más fácilmente a este paradigma, así como hacerse más fácil para la gente que construye aplicaciones Joomla para poder aprovechar las bibliotecas disponibles a través de Composer con mayor facilidad. Por lo tanto, con todo el trabajo que está pasando con namespacing, la plataforma actual se dividirán en paquetes individuales que se podrán publicar a Composer e instalar con Packagist.

También existe la oportunidad de limpiar cualquier paquete (quitando el código heredado), o incluso abandonar paquetes existentes (como JFile, etc).

¿Qué oportunidades y desafíos crea esto para el proyecto?

Oportunidades:

  • Delegar la gestión de un pequeño grupo de mantenedores de plataforma que fácilmente puede convertirse en un cuello de botella para la aceptación o la revisión de las contribuciones sobre la plataforma en su conjunto. Es mucho más fácil para la gente centrarse en la aprobación de código para pequeños trozos de código.
  • Permite a los desarrolladores recoger y elegir lo que necesitan para crear aplicaciones sin importar en qué aplicaciones están construidas esas bibliotecas.
  • Aún mantiene la marca Joomla.
  • Permite que los paquetes que se encuentren en mal estado o simplemente carezcan de interés sean fácilmente retirados.
  • El equipo de liderazgo Joomla sólo tiene que ser responsable de proporcionar las herramientas adecuadas y orientar en las políticas.

Desafíos:

  • Hay algo de nueva sobrecarga en la creación de repositorios y el mantenimiento de listas de control de acceso. Hemos ordenado algo de esto con git sub-split. Aún quedan detalles que resolver.
  • Tendríamos que encontrar la manera de aprobar nuevos paquetes, algo que todavía tenemos que abordar.
  • Probablemente muchos otros que no hemos pensado todavía.

¿Dónde puedo encontrar el Framework?

Dirígete a https://github.com/joomla y verás unos cuantos repositorios nombrados empezando con joomla-framework

!Suena bien! ¿Cómo puedo participar?

Tenemos una lista de cosas por hacer que necesitan realizarse para obtener el Framework en la versión 1.0. Podríamos estar perdiendo algunas cosas pero hay bastante que hacer. Puedes ver la lista en https://github.com/joomla/joomla-framework/issues?state=open

Tengo más preguntas, ¿dónde está el mejor lugar para preguntar?

La lista Joomla Platform Development es el mejor lugar por ahora.