Joomla 4 en movimiento...

Joomla 4, nuestra próxima versión principal, está siendo activamente desarrollada gracias a nuestra gran comunidad de voluntarios. ¡Han pasado muchas cosas en los últimos meses!

Antes de llegar al ciclo Beta (que en su mayoría significa congelación de funciones), queríamos compartir con ustedes alguna información importante relacionada con:

  • Requisitos técnicos
  • Sistema de búsqueda mejorado
  • Nuevo revisor de estilo de código.

Aumento de los Requerimientos Técnicos

La industria web se mueve rápido y Joomla necesita actuar en consecuencia para mantenerse en la cima y satisfacer a sus usuarios. Por lo tanto, hemos decidido aumentar los requisitos técnicos para Joomla 4.

Como Joomla 4.0 y Joomla Framework 2.0 han estado en desarrollo durante varios años, hemos decidido reevaluar las versiones de software soportadas con el fin de optimizar el CMS para los próximos años y seguir a nuestros usuarios en lo que ya están utilizando (información que hemos podido obtener gracias a los usuarios que habilitan nuestro plugin de estadísticas).

PHP mínimo a PHP 7.2

7.2 y 7.3 son actualmente las únicas versiones de PHP soportadas activamente, con PHP 5 no soportado desde diciembre de 2018 y PHP 7.1 sólo recibiendo correcciones de seguridad hasta diciembre de 2019. Para cuando Joomla 4 sea lanzado, la versión más antigua de PHP soportada, la 7.2, tendrá menos de un año de soporte de seguridad. Esto nos permite aprovechar la encriptación nativa php sodium sin polyfill, así como las declaraciones de tipo void que van a ser útiles para las nuevas interfaces en Joomla 4. A la hora de elegir esta versión, nos fue útil notar que en el plugin de estadísticas había el doble de usuarios en PHP 7.2 que en la versión 7.1.

MySQL mínimo a 5.6

5.6, 5.7 y 8 son las versiones actualmente soportadas de la base de datos MySQL. La versión 5.5 llegó a su fin en diciembre de 2018, mientras que MySQL 5.6 será soportada hasta febrero de 2021. Nótese que la versión mínima de MySQL puede estar sujeta a cambios durante la vida útil de Joomla 4, si es necesario, en el futuro podríamos buscar el uso de MySQL 5.7 que permitiría el uso del tipo de base de datos JSON en las columnas de MySQL.

PostgreSQL mínimo a 11

Una nueva versión mayor de PostgreSQL se publica una vez al año y contiene nuevas características. Al menos una vez cada tres meses la versión principal recibe errores y, si es necesario, correcciones de seguridad. A veces nos ha resultado difícil soportar todas las diferentes versiones disponibles de PostgreSQL. Por lo tanto, para que Joomla 4 sea más estable y porque casi la mitad de nuestros usuarios actuales de PostgreSQL ya están en la versión 11, se ha optado por soportar sólo la última versión 11 y superiores (la versión 11 llegará a EOL en noviembre de 2023).

Fin del soporte para Internet Explorer

La decisión de dejar de apoyar a IE se basó en pocos criterios. Menos del 5% de los usuarios navegan por Internet con Internet Explorer. El nuevo navegador Edge (basado en Chromium) tendrá una capa de compatibilidad con IE que hará que el uso de IE se reduzca aún más.

¿Significa esto que Joomla 4 no funcionará en IE? ¡Sí y No!

La plantilla del backend de Joomla 4 no es compatible con IE, por lo que necesitará otro navegador para instalar/mantener un sitio web. Lo mismo ocurre con la plantilla de interfaz principal, Cassiopeia, ya que no es compatible con los requisitos de IE, por lo que puede esperar algunos problemas de visualización. Sin embargo, se puede resolver creando o instalando una plantilla que soporte IE.

¿Cómo afectará esto al código central?

A medida que eliminamos el soporte para PHP 5 hay numerosas características y optimizaciones que podemos hacer en nuestro código. Muchos de estos cambios se pueden realizar sin afectar a la API pública existente, sin embargo, algunas características (por ejemplo, indicaciones de tipo escalar) introducirían rupturas de compatibilidad hacia atrás si se aceptan. Por lo tanto, vamos a adaptar las siguientes políticas en lo que se refiere a Joomla! 4.0 y Joomla! Framework 2.0, para el código nuevo y existente:

  • Todas las nuevas clases y métodos en las nuevas versiones mayores pueden hacer uso de todas las características disponibles en PHP 7.2, incluyendo indicaciones de tipo escalar y declaraciones de tipo retorno
  • Los métodos privados y los métodos en clases finales (que no pueden ser extendidos por definición) pueden ser actualizados para usar la tipificación de PHP 7.2.
  • Los métodos públicos y protegidos en clases existentes generalmente no cambiarán sus firmas de método a menos que el cambio mejore la comprensión y el uso del código (por ejemplo, métodos que podrían usar firmas variádicas).
  • La base del núcleo abandonó el uso de complicados polyfills, sólo para soportar IE, para variables CSS y flexbox.

Un único y mejorado sistema de búsqueda

Al tratarse de una versión mayor, estamos evaluando todas las extensiones y conceptos para tratar de hacer la vida más simple para cada usuario de Joomla. Un problema en Joomla desde la versión 2.5 ha sido la búsqueda. Joomla 4.0 dará un gran paso adelante y queremos contártelo todo.

¿Cuál es el problema?

Durante años Joomla proporcionó dos sistemas de búsqueda. El primero es el Search (o com_search), que proviene de los tiempos de Mambo y no ha evolucionado realmente desde entonces. El segundo es el Smart Search (o com_finder) que fue gentilmente donado para Joomla 2.5, pero no fue 100% pulido.

Dos sistemas completamente separados para la misma tarea no facilita las cosas a los usuarios y a menudo conduce a la confusión. Sin mencionar que los desarrolladores principales tienen que soportar ambos sistemas.

¿Cuál es la diferencia entre Search y Smart Search?

Search es un sistema muy simple que llama a un grupo de plugins para hacer una búsqueda nativa en la base de datos del término buscado y devolver una serie de resultados. Reacciona a cada mención de ese término, pero sólo a ese término exacto. Si tiene muchos datos y plugins de búsqueda, esto puede afectar el rendimiento del sitio. Los resultados no están ordenados, pero el código necesario para hacer ese plugin es simple.

Por otro lado, Smart Search es una búsqueda basada en índices. Buscar en un índice tiene muchas ventajas, ordenar los resultados por relevancia, una especie de búsqueda difusa, donde se buscan variantes de palabras y menos impacto en el rendimiento. El sistema Smart Search es más potente, pero requiere un poco de trabajo, ya que es necesario crear el índice.

¿Qué hemos hecho?

En el último año, Smart Search ha tenido una revisión completa. Mejoramos la estructura de datos y la forma en que Smart Search realiza la búsqueda real para mejorar enormemente el rendimiento. Arreglamos varios errores de larga data y pulimos el sistema de taxonomía. Lo más importante es que hemos corregido muchos errores relacionados con el soporte multilingüe.

Con todos estos cambios, Smart Search proporcionará mejores resultados de búsqueda. Por lo tanto, decidimos eliminar el sistema de Search del núcleo de Joomla 4.0.

Aprovechamos esta oportunidad para dar las gracias a cloudaccess.net, que financió en parte la mejora del sistema de búsqueda inteligente.

¿Cómo puedo actualizar de Search a Smart Search?

Los dos sistemas son muy diferentes y no hay una manera real de actualizar uno al otro con un clic. Si actualmente estás utilizando Search en tu sitio y deseas cambiar a Smart Search, tendrás que configurar el sistema. No te asustes, es más fácil de lo que parece: Habilita el plugin, crea un índice de su contenido (es sólo un clic!) y haz que esté disponible para tus visitantes creando un elemento de menú o un módulo (o ambos).

Para obtener más información sobre el sistema Smart Search y cómo configurarlo, haz clic en el botón Ayuda del backend.

Animamos a nuestros desarrolladores de extensiones a que comiencen a crear plugins de Smart Search para sus extensiones lo antes posible para satisfacer a sus usuarios.

¡Pero necesito la vieja búsqueda!

Si realmente no quieres cambiar a Smart Search, todavía podrás instalar el sistema Search heredado como una extensión separada en los nuevos sitios de Joomla 4. Este paquete estará disponible en el sitio de descargas (https://downloads.joomla.org) y se mantendrá durante toda la vida útil de Joomla 4. Si estás actualizando desde un sitio de Joomla 3, entonces no eliminaremos la búsqueda anterior - al igual que cuando eliminamos los enlaces web en Joomla 3.3.

Corrección automática de errores de estilo de código

Con la implementación de PHP CodeSniffer 2.x, tenemos la capacidad de corregir automáticamente muchos errores de estilo de código. Nuestros olfateadores personalizados en el estándar de codificación también han añadido esta capacidad de corrección automática. Esto debería ahorrar a los desarrolladores y los proyectos Joomla una gran cantidad de tiempo en garantizar el cumplimiento de los estándares de código sin intervención manual. Ya estamos trabajando en la migración a PHP Codesniffer 3.x para asegurarnos de que tenemos la última y mejor versión en Joomla 4.

Nos gustaría destacar a Walt Sorenson, que ha dedicado una gran cantidad de tiempo a trabajar en el conjunto de reglas de codesniffer para Joomla. En el espíritu del código abierto, muchos de nuestros ajustes de Joomla han sido devueltos al proyecto codesniffer.

Estamos firmemente comprometidos a hacer de Joomla 4 la mejor generación. La adopción de lo mencionado ayudará a ofrecer un producto de la más alta calidad a nuestros usuarios.


Este artículo es una traducción de Joomla 4 on the Move... publicado en Joomla Developer Network