Du 6 au 8 novembre 2015 au JWC15 (JOOMLA! WORLD CONFERENCE 2015) à Bangalore, en Inde deux éminents participants ont dévoilé un peu plus ce qui nous attend avec la prochaine version du CMS Joomla!
Marco Dings, membre de la PLT (Joomla Production Leadership Team), en charge de la gestion et de la coordination globale des projets autour de Joomla! et aussi responsable du projet Joomla! 4, ainsi que Chris Davenport (aussi membre de la Joomla PLT), responsable de la sortie de Joomla 3.6 et membre du groupe de travail sur l'architecture de Joomla!4 sont intervenus pour nous dévoiler les secrets de Joomla 4.
Les deux intervenants ont pris tout de même le soin de préciser qu'il est encore trop tôt pour confirmer telle ou telle fonction dans la prochaine version majeure du CMS mais ont donné un résumé le plus complet possible de la direction vers laquelle s'oriente très clairement Joomla!
Il a été rappelé que Joomla! 3 sera supporté jusqu'en 2018. La version 3.6 qui arrivera dans quelques mois apportera la généralisation des web services. Ensuite les version 3.x débuteront l’intégration des fonctions nécessaires pour la version 4.
Le passage de Joomla! 3 à Joomla! 4 s'accompagne d'évolutions majeures à différents niveaux:
D'un point de vue programmation Joomla! 4 va apporter un véritable changement dans l'architecture technique avec :
D'un point de vue plus fonctionnel (ce qui interesse la plupart d'entre nous) cette nouvelle version de Joomla! rompt avec beaucoup des fondamentaux du CMS pour évoluer et permettre d'atteindre les objectifs cités ci-dessus:
Tout est un composant qui peut etre rendu dans n'importe quelle position sans passer par des modules qui disparaîtront (en front car on les retrouvera en back office). Aussi un même composant peut aussi être rendu dans différentes positions en même temps. On simplifie la publication de contenu en se passant de l'étape 'module'.
Joomla est une collection de composants trop indépendants actuellement. Les fonctions transverses comme les tags, le versioning, ou le workflow doivent alors être renveloppés dans chaque extension dans j!3. Dans Joomla! 4 ces 3 éléments seront au contraire orthogonaux (voir schéma). Le but est de les simplifier et de factoriser les fonctions communes, c'est ce qu'on appelle le design orthogonal. Un composant dans Joomla! 4 doit ignorer ce qu'il a en entrée (web services, ligne de commande, navigateur...) et ce qu'il a en sortie (le type de rendu).
Si dans le modèle MVC actuel le composant est autonome, dans Joomla! 4 un composant sera plus léger et ne devra traiter que les charges spécifiques. Le nouveau composant est ignorant du format d'entrée et de sortie. Dans les deux schémas suivants (l'un pour Joomla! 3 et l'autre pour Joomla! 4) on voit que la charge de travail du développeur de composant (zone jaune) est considérablement réduite par la factorisation de toutes les fonctions communes (entrée et sortie).
Une nouvelle API permet l'accès aux fonctions du back office (installation, configuration...) par ligne de commande. Cela permettra l'écriture de scripts de création ou de configuration de sites.
Dans Joomla! 4 un composant pourra être indifféremment alimenté par le navigateur , un webservice ou la ligne de commande , en dehors du navigateur.
C'est ici le support de plusieurs formats de rendus (html, bs3, xml, json, pdf, ePub...) avec la possibilité d'ajouter son propre format de rendu des contenus. Encore une fois les composants peuvent être branchés sur n'importe quel format de rendu.
Actuellement un contenu suit un workflow assez figé (sauf a utiliser des extensions comme SEBLOD pour un workflow personnalisé). Dans Joomla! 4 il sera nativement possible d'ajouter des étapes entre la création de contenu et sa publication.
Il s'agit ici peut-être de la plus profonde rupture avec l'héritage de Joomla! En effet depuis sa première version Joomla! est piloté et centré sur les éléments de menus. Il s'agit bien ici d'abandonner les fameux ItemId (identifiant d'éléments de menu) et par là aussi du contenu central dans la page. Dans Joomla! 4 on peut avoir une arborescence de contenus indépendamment d'une arborescence de menus. On abandonne aussi le chemin obligatoire mais souvent incompréhensible pour un débutant: le triptyque catégorie->article->élément de menu. Cette simplification aura aussi un impact positif très important pour le SEO des sites Joomla!
Une interface utilisateur "page builder" sera proposée en back office pour construire graphiquement ces pages maintenant qu'on s'est affranchi de l'itemID. Cette séparation du contenu et de la structure permet ainsi, selon les types d'utilisateurs, des usages différents: le simple blogueur pourra très simplement ajouter des contenus sans avoir à s'occuper des menus. On peut travailler selon 3 points de vue différents: structure / contenus / Menus selon la complexité et la richesse de l'application web développée.
Et Joomla! 4, c'est pour quand ?
C'est évidemment la grande question à laquelle les intervenants ont répondu (tout de même) qu'une version alpha était prévue pour le prochain Joomla&Beyond en mai 2016. En ce qui concerne la migration il y aura un outil de migration "1 clic" pour le cur de Joomla! mais la compatibilité ascendante sera brisée. Pour les extensions un kit de migration sera fourni.
Les vidéos :