J'ai créé ce soir les archives de la nouvelle version de Copix 2.2.2, qui est une simple version corrigeant des bugs de la version précédente, notamment la compatibilité avec PHP 4.4 qui est devenu (un peu trop?) strict avec les retours de valeurs par référence. Les utilisateurs de la version 2.2.1 de ce Framework PHP, peuvent aller télécharger le "patch" qui est un zip contenant les fichiers corrigés. Tout est disponible sur la page de téléchargement du projet.

Rien de transcendant donc pour Copix 2.2.2. Mais nous comptons publier dans le courant du mois de septembre, la version 2.3 qui va apporter elle, son lot de nouveautés. C'est ainsi que depuis quelques mois, j'ai bossé sur plusieurs choses :

  • l'amélioration des performances du framework, que ce soit au niveau coeur, que du système événementiel (j'ai calculé qu'on gagnait 10% de temps sur l'exécution du cœur; pas assez à mon goût, mais c'est toujours ça de pris)
  • une refonte de CopixSimpleXml, la classe permettant de lire facilement un fichier XML
  • une refonte de CopixUrl et le support des urls significatifs
  • la factorisation du code des compilateurs de fichiers xml d'un projet copix, ce qui a eu pour conséquence une réorganisation des répertoires de fichiers temporaires

Et puis Gérald, l'autre développeur principal du projet, a apporté les modifications nécessaires pour que Copix 2.3 soit compatible avec PHP 5. Il a aussi ajouté des fonctions "helpers" (facilitant le développement), mis à jour des icônes, des modules, corrigé des bugs, fait un gros travail sur la doc avec l'aide de Sylvain, etc..

Parallèlement à cela, j'ai également travaillé sur ce qui deviendra certainement Copix 3.0. Je trouve que Copix 2.x se traîne des défauts depuis trop longtemps. Mais les corriger nécessite de casser la compatibilité avec les versions précédentes. Ce changement de numéro de version majeure sera donc l'occasion de casser tout ce qui ne va pas. Ce que j'ai commencé à faire.

J'ai ainsi refondu le cœur même du framework, la partie coordination, qui permet ainsi de mieux prendre en charge les services webs, de toujours faire en sorte de générer la sortie selon le format attendu (surtout quand il y a des exceptions fonctionnelles ou techniques). Elle facilitera aussi le développement évitant au maximum le code répétitif que l'on peut observer quand on développe avec Copix 2.2. J'ai également refondu le système d'authentification et le système de droit, plus simples désormais à utiliser et à personnaliser.

Je suis en train d'expérimenter, de roder ces nouveautés en faisant des modules affichant du XUL, du XHTML valide, offrant des services web en JSON, XML-RPC, etc... Ça va certainement bouger encore pas mal. Avec Eric et Gerald, nous sommes également en train de réfléchir à CopixForms (un système facilitant la prise en charge des formulaires) à une deuxième version de CopixDao (notre mapping relationnel objet en XML), à un système de thèmes pour les templates etc...

Bref, depuis quelques mois, j'ai pas mal de soirées occupées, et je vais en avoir encore d'ici la sortie de Copix 3.0, dont on peut espérer une bêta début 2006 :-)