Au cours des derniers mois, l'équipe de la plateforme de maintenance et les développeurs ont discuté des orientations futures. Un des objectifs pour cette année est d'introduire le namespacing. Cela représente un travail énorme et en même temps que le travail progressait, il est devenu évident que la rétrocompatibilité allait être une bataille de tout les instants.
A noté que l'un des effets secondaires négatifs de cette situation serait que, si le namespacing avez été introduit dans cette version, le CMS Joomla ne soit pas en mesure d'utiliser la release 13.1 de la Plateforme durant un certain temps.
Après une longue discussion, les développeurs internes et d'autres développeurs de la communauté ont décidé de faire quelques changements sur la Plateforme afin de résoudre le problème et ainsi de profiter de quelques nouvelles possibilités.
Changement de nom pour le Framework Joomla
Parce que l'impact du changement de namespacing est si important et couplé avec d'autres changements décrits ci-dessous, il a été décidé de renommer la Plateforme Joomla en Framework Joomla (c'était le nom d'origine jusqu'à la sortie de Joomla 1.6 en 2011).
Ce changement de nom est important puisqu'il trace une ligne entre ce qui pourrait être considéré comme le moteur du CMS Joomla (la plateforme Joomla), et un ensemble de librairies que la communauté PHP peut utiliser pour construire tout type d'applications par dessus le code de Joomla.
Publier avec Composer
Actuellement, la façon la plus facile d'obtenir le CMS Joomla est d'aller sur la page des téléchargements et de télécharger la dernière version. Mais, ce n'est pas aussi facile d'intégrer la plateforme Joomla au sein des projets de logiciels. Cependant, il existe des moyens pour la communauté PHP pour distribuer le code de librairies. PEAR existe depuis de nombreuses années, mais plus récemment, un système appelé Composer est devenu disponible et a été largement adopté.
Le nouveau Framework Joomla sera désormais disponible via Composer et vous pouvez trouver la liste des packages sur Packagist.org.
Des Packages indépendants
Avec les changements nécessaires pour rendre le Framework Joomla disponible sur Composer, des mesures ont également été prises pour rendre chaque package autonome autant que possible et avec le minimum de dépendances. Cela vous permettra :
- d'installer seulement le code dont vous avez besoin pour vos applications personnalisées et vos extensions Joomla
- de modifier et de mettre à niveau seulement le code à modifier
Une nouvelle liste de diffusion
La liste actuelle de diffusion de la plateforme Joomla a été fermée et archivée et l'ancienne liste de diffusion du Framework Joomla lancée en 2009 a été réouverte.
Un nouveau dépôt de code source
Il y a un nouveau dépôt pour le Framework Joomla.
L'actuel dépôt de code de la plateforme Joomla est sur le point de passer en version 13.1 (bientôt) et ce code sera gelé comme la dernière version officielle de la plateforme Joomla. Le dépôt restera du domaine public, mais vous ne serez pas en mesure de poster des questions et les demandes seront toutes fermées.
Versioning sémantique des paquets
L'ancienne plateforme Joomla utilise un système de numérotation séquentielle basé sur l'année civile en cours. Au départ, ce fut un système facile à suivre, mais celui-ci a montré des imperfections au fil du temps. Le nouveau Framework Joomla suivra un versioning sémantique comme le CMS Joomla le fait actuellement. Ainsi, il sera beaucoup plus clair de suivre les dernières modifications qui ont été apportées dans le code (grâce à l'incrémentation du numéro de version).
En résumé, toutes les versions de package Framework Joomla nouvellement créées seront synchronisées et la numérotation des versions est réinitialisée .
La version 1.0 du Framework Joomla sera la première release, sous licence GPL. Les développeurs pourront inclure le Framework dans leurs projets grâce à Composer.
Si tout se passe comme prévu, la version 2.0 de la suite de Framework Joomla sera publiée sous licence LGPL et sera prête à être utilisée en masse par la communauté PHP. Pour le moment, il est difficile de prévoir quand cela sera le cas puisque des discussions sont toujours en cours sur la question du changement de licence.
Nouvelle Documentation
Une nouvelle API documentation mise à jour est proposée. Celle-ci a été créée sur phpDocumentor2 dans le nouveau dépôt de Framework Joomla.
L'API documentation sera mise à jour automatiquement à chaque fois qu'il y aura un push vers le master.
De plus, l'ancien manuel de la plateforme a été divisé en fichiers README qui sont maintenant à la racine de chaque package individuel. Les informations sur un package spécifique sont alors avec le package, ce qui les rendent plus facile à trouver.
Nouvelle stratégie de test
Les tests unitaires se trouvent maintenant dans le dossier /tests/ dans chaque package et ils seront en mesure de tourner de façon autonome. Avec la documentation, tout est centralisé avec chaque paquet à un seul endroit.
Fusionner la plateforme avec le CMS
Le CMS Joomla ne comprendra pas immédiatement le nouveau code du Framework Joomla - cela causerait tout simplement trop de problèmes et trop de confusion avec Joomla 3.1. Toutefois, le CMS prendra une copie du code de la plateforme à partir du dépôt de la plateforme Joomla pour l'inclure où cela est possible. L'équipe qui travaille sur les Bugs Joomla va continuer son rôle de maintenance du code de la plateforme, ce qu'elle fait déjà, mais en un seul endroit au lieu de deux (réduisant ainsi la double manutention).
Il sera également question de faire les changements suivants au cours du prochain cycle de développement (pour Joomla 3.2):
- Le dossier libraries/cms contiendra les classes spécifiques au CMS.
- Le dossier libraries/joomla contiendra le code venant de fournisseurs externes ainsi que le code de la plateforme qui est maintenue par le projet Joomla et qui est nécessaire pour que le CMS puisse fonctionner.
- Le dossier libraries/legacy contiendra toutes les classes prévues pour la suppression de la prochaine version majeure du CMS. Cela comprendra toutes les proxies de classe qui ont été faites à la suite de la ratification des conventions du nouvel autoloader. Cela montre aussi clairement ce dont les développeurs de code doivent être éloignés lorsqu'ils font la maintenance de leurs extensions.
Le futur du nouveau Framework Joomla
Voici ce que l'on peut imaginer pour le nouveau Framework Joomla :
- Le fait pour le Framework d'être disponible sur Composer génère un intérêt dans la communauté PHP et encourage les personnes qui ne pensaient pas utiliser du code Joomla à l'essayer.
- La rupture du Framework en packages isolés permettra à chaque package d'évoluer plus facilement que lorsque tous les packages sont liés à une seule version monolithique.
- La suppression de tout le code obsolète et le dernier "code CMS" restant permet aux équipes de se concentrer sur une meilleure réalisation des choses, plutôt que de constamment se poser la question si "cela brisera le CMS actuel".
- L'utilisation de Composer et de pratiques de développement plus modernes va attirer de nouveaux développeurs de projet Joomla, y compris sur le CMS.
Le futur du CMS Joomla
Même si le nouveau Framework ne sera pas intégré immédiatement dans le CMS Joomla, il y a un certain nombre d'avantages à court, moyen et long terme pour le CMS.
Casser le Framework en packages permettra au CMS, à l'avenir, de juste mettre à niveau les parties du Framework nécessaires. À l'heure actuelle, le CMS doit prendre une seule version de la plateforme et vous ne pouvez pas mettre à niveau des versions précédentes du CMS. Par exemple, ne serait-il pas génial si Joomla 2.5 et Joomla 3.0 pouvaient fonctionner sur la même version de la plateforme? C'est impossible à faire actuellement, mais ça le sera à l'avenir.
Lorsque le CMS est prêt à faire une actualisation technique de son architecture, toute l'expérimentation et le travail réalisés en amont sur le Framework seront désormais prêts et testés pour le CMS.
Les choses seront un peu différentes pendant un certain temps, mais cela ne signifie pas que le Framework et le CMS ne peuvent pas et ne pourront pas travailler ensemble vers un but commun. Par exemple, Chris Davenport travaille dur sur une nouvelle couche de services Web pour le CMS Joomla. Cette couche peut être construite directement sur le nouveau Framework Joomla et permet aux équipes CMS et également aux développeurs d'extensions d'être plus à l'aise dans les nouveaux paradigmes. Des projets comme le nouveau Issue Tracker Joomla peuvent également commencer à utiliser le Framework Joomla afin que tout le monde puisse développer d'autres types d'applications web ou en ligne de commande par-dessus le code de Joomla.
En fin de compte, la mission du projet Joomla dans son ensemble est d'offrir une plateforme flexible pour la publication numérique et la collaboration, et ces modifications du Framework représentent un lourd travaille à faire pour que cela devienne une réalité.