News - PHPBoost

Nouvelles de la prochaine version PHPBoost

Nouvelles de la prochaine version PHPBoost
Cela fait un moment que nous évoquons la version 2.1, remplaçante de PHPBoost 2.0. Nous avons récemment pris une décision à propos de cette prochaine version que nous allons vous exposer en détails. Nous n'étions pas partis pour cela, mais la prochaine version de PHPBoost (que nous avons appelée jusqu'à maintenant 2.1) sera le début d'une nouvelle branche du projet, elle sera donc baptisée PHPBoost 3.0.

Qu'y-a-t'il de si important parmi les nouveautés ?



Créer une nouvelle branche du projet doit forcément se justifier. Nous allons détailler quelques points clé qui appuient notre décision et qui vous permettront de mieux connaître cette nouvelle version en attendant qu'elle sorte.

Durée du développement



PHPBoost 2.0 est sortie le 4 novembre 2007, et aura d'ailleurs été pour nous une extraordinaire réussite puisqu'aucun correctif n'a été apporté en un an d'exploitation. Espérons faire aussi bien avec cette nouvelle mouture.
Le développement de PHPBoost 3.0 a commencé dès la sortie de sa petite sœur, soit il y a déjà plus d'un an. La 2.0 aura été tellement stable que nous avons pu profiter de développer de nouvelles choses sans avoir d'impératif de sortir des versions intermédiaires, ce qui aurait assez lourdement handicapé notre progression.
En un an de développement plutôt intense, nous avons pu reprendre tous les points faibles de la 2.0. Nous avons revu la conception et le code avec une approche beaucoup plus professionnelle, ce qui assure une meilleure qualité et maintenabilité du code.

Un véritable framework intégré



Sur PHPBoost 2, on pouvait créer des modules, mais la documentation n'était pas suffisamment expliquée et l'environnement de développement trop obscur et difficile à prendre en main.
Sur la 3ème branche du logiciel, nous avons créé un framework embarqué dans le noyau de l'application, qui permet de prendre en charge les traitement les plus courants. Le framework est entièrement conçu selon le modèle de la programmation orientée objet.
Sans rentrer dans les détails techniques, cette nouveauté permet entre autres un développement de modules bien plus aisé et rapide puisqu'il n'est plus nécessaire de réinventer la roue pour proposer chaque fonctionnalité, et cela apporte surtout une bien meilleure maintenabilité du code.

Le framework nous a permis de revoir l'organisation des fichiers, qui commençaient à s'accumuler dans certains répertoires. Cette réorganisation était absolument nécessaire, compte tenu de l'ampleur que prend le projet.
Par la même occasion, nous en avons profité pour réécrire une bonne partie du code, certaines parties commençaient à devenir assez vétustes et difficilement retouchables.

Note aux développeurs :
Le framework sera entièrement documenté, il sera donc facile de le prendre en main et donc de développer un module en peu de temps.


Un nouveau moteur de templates



Les templates sont les squelettes des pages générées par PHPBoost. Ils sont écrits en langage HTML et comportent des balises permettant de marquer l'emplacement de chaque variable qui contiendra des valeurs issues de la génération de la page.
Le principe de fonctionnement de ce système n'a pas changé. En revanche, son implémentation (la façon dont il est programmé) a été entièrement revue, et permet de gagner au moins 30% en terme de temps de génération des pages.
Ce nouveau système est basé sur le principe de la mise en cache. Les fichiers TPL ne sont plus traités à chaque exécution de la page comme c'était le cas sur PHPBoost 2. Ce traitement étant lourd et très peu optimisable, nous avons décidé de le faire seulement quand il est absolument nécessaire. Les fichiers sont maintenant traités uniquement quand leur contenu change, et le résultat du traitement est écrit sur le disque dur du serveur. Cette technique prend un peu plus d'espace disque (ce qui n'est pas très gênant puisque la mémoire ne coûte plus très cher et donc les hébergeurs ne lésinent généralement plus sur l'espace mémoire), mais permet de gagner très notablement du temps à l'exécution de chaque page.

Une communication inter-modules



Grosse nouveauté conceptuelle de PHPBoost 3, la communication inter-modules. Les modules étant indépendants les uns des autres, il n'était pas possible de les faire communiquer, ce qui s'est révélé être un frein pour l'arrivée de certaines nouvelles fonctionnalités.

Cette communication paraît anodine, mais elle a permis l'apparition d'un module de recherche globale au site, contrairement à la version 2 dans laquelle chaque module ne pouvait proposer seulement la recherche dans son contenu. Ce module est déjà présent sur ce site.

Le fait que les modules puissent communiquer va permettre d'étendre très notablement l'espace des fonctionnalités réalisables sur un module. Ainsi, un module plan du site est prévu assez rapidement après la sortie de la nouvelle version, un tel module était absolument irréalisable sur la branche 2 du logiciel.

Il sera très facile aux développeurs de communiquer avec les autres modules, et par exemple d'intégrer la recherche dans son propre module à la recherche globale au site.

Et bien d'autres nouveautés



Ce sont en tout plus d'une centaine de nouveautés qui arriveront avec la version 3.0. Nous avons présenté là seulement les plus importantes. Un dossier expliquant les changements entre ces deux versions majeures sera publié en même temps que la sortie de PHPBoost 3.0 pour faire le point sur le nouvel état du projet.

La gestion des contributions



Cela manquait énormément dans la version 2 et vous avez été nombreux à nous en parler. C'est désormais chose faite, les utilisateurs pourront contribuer au contenu du site, à condition évidemment que le module en question propose cette fonctionnalité. Mais si les modules ne proposaient pas ces fonctionnalités, c'était à cause de la gestion du cycle d'approbation de la contribution.

Le nouveau noyau PHPBoost contient un panneau de contribution, interface à travers laquelle les gens qui sont autorisés à traiter une contribution seront avertis de son arrivée et pourront assez simplement la traiter.

Encore une fois, la gestion des contributions est effectuée par le noyau, l'intégration dans un module sera donc très réduite et se fera en peu de temps.

Différentes distributions



La version 3 de PHPBoost sera proposée sous plusieurs distributions. En choisissant sa distribution, l'utilisateur téléchargera un installateur directement préconfiguré pour son utilisation. Nous distinguons pour l'instant quelques distributions (vos idées sont les bienvenues) :
  • Publication
  • Communauté
  • Vitrine
  • Pack complet
  • Noyau seulement


C'est pour quand ?



C'est la question que vous vous posez tous depuis des mois et certainement encore plus depuis que vous avez commencé à lire cette longue annonce.

Le retard de livraison de cette nouvelle version



Tout d'abord nous tenons à nous excuser du retard que nous avons pu accumuler par rapport à notre estimation sur la date de sortie. Voici quelques explications :
  • Nous y travaillons depuis plus d'un an, il est donc difficile sur une si longue période de travail d'être précis dans les prévisions.
  • Nous avons souhaité proposer toutes les fonctionnalités que nous envisagions depuis un certain temps, ce qui devrait donner champ libre aux développeurs de modules par la suite. Le fait d'avoir décidé de créer une nouvelle branche nous a encouragé à y intégrer le plus de fonctionnalités possible.
  • Nous avons commis quelques erreurs de communication, notamment en ayant commencé à vous en parler très tôt.
  • Nous sommes étudiants et bénévoles : nous travaillons pendant notre temps libre. Concilier un tel projet et les études n'est vraiment pas simple. Cela a pour principale conséquence que nous ne pouvons pas réellement prévoir à l'avance le temps que nous pourrons consacrer au projet, il nous est ainsi difficile d'estimer un temps de développement étant donné que nos horaires ne sont pas du tout réguliers.


Le reste à faire



Nous voyons cependant que vous n'avez pas perdu patience et que vous nous avez soutenus. Votre attente devrait être bientôt récompensée, cependant, le temps libre étant une ressource assez rare par les temps qui courent, nous ne pouvons pas vous annoncer une date précise. Nous évaluons à quelques dizaines d'heures le temps de travail restant avant de proposer une version de test de PHPBoost 3.0.

En terme de nouvelles fonctionnalités, il nous reste seulement la gestion dynamique des menus à terminer. Nous avons conçu une interface de gestion des menus (aussi appelés blocs) qui étaient disposables seulement sur les côtés droite ou gauche sur la version 2. Il est maintenant possible de les disposer n'importe où, et leur contenu est beaucoup plus étoffé, avec l'arrivée notamment de menus de liens, permettant de prendre en compte une suggestion qui est revenue plusieurs fois : le menu de liens en haut de chaque thème était modifiable seulement à la main en passant par les fichiers templates. C'est désormais géré simplement dans le panneau d'administration du site.

L'installateur est terminé et fonctionnel, et hormis les menus, PHPBoost 3.0 semble se comporter plutôt bien. Dès que l'implémentation de cette fonctionnalité sera achevée, une version alpha ou beta (selon le résultat de nos premiers tests) de la version 3.0 vous sera proposée, ce qui nous permettra de corriger une bonne partie des bugs. Nous proposerons par la suite une version RC (Release Candidate ou version candidate) pour valider la stabilité de l'application, puis la version 3.0 définitive de PHPBoost arrivera.

Si tout se passe bien, le père Noël devrait vous apporter un beau cadeau...