Jelix, changement de version pas à pas

Il a bien longtemps que je n’ai pas écrit d’article à propos du framework Jelix. En effet, pour des raisons professionnelles afin de répondre plus efficacement à mes clients, je lui ai fait des infidélités au profit de WordPress.

Ceci étant je reste persuadé que ce framework gagne à être connu dès lors que l’on se lance dans le développement spécifique d’application. C’est pourquoi mon propre site internet reste construit (hors blog) à l’aide de Jelix et me sert en quelque sorte de laboratoire pour en comprendre son fonctionnement.

Ces infidélités m’ont contraint à suivre de très loin les évolutions du framework et il est temps justement d’effectuer la migration vers la toute dernière version

C’est l’objectif de ce billet qui va me permettre de montrer avec quelle simplicité ce changement est réalisable.

1ère étape: votre version Jelix

Tout d’abord, il faut bien entendu (si comme moi vous avez plusieurs versions de retard) vérifier quelle version de Jelix vous utilisez. Pour cela rendez-vous dans le dossier lib/jelix de votre installation dans lequel vous y trouverez le fichier VERSION qui contient justement le numéro de version du framework.

Par exemple sur ma propre installation WAMP quand j’ouvre le fichier VERSION, j’ai : 1.3.3version-jelix

2ème étape : télécharger les versions majeures suivantes

L’étape suivante va consister à télécharger les dernières versions majeures du framework ainsi que la toute dernière version corrective de votre version courante. Me concernant, au moment de l’écriture de ce billet cela sera donc la version 1.3.8, 1.4.5 et 1.5.3

Rendez-vous donc sur la page de téléchargement des versions stables du site Jelix.org pour télécharger les 3 versions.

3ème étape : mettre à jour la version courante

J’ai pris pour habitude de faire déjà une mise à jour vers la dernière version sur la branche majeure du framework utilisée dans mes applications. Les premières manipulations de fichiers restent les mêmes que pour un changement vers les versions de branche supérieure.

NB: à noter que les indications sont à adapter à votre environnement de développement et ou de production. Personnellement j’ai pour habitude de placer la bibliothèque (dossier lib) Jelix en dehors du « DocumentRoot » apache et les ressources jelix (dossier jelix-www) directement dans à la racine de l’application en renommant le dossier en jelix (plus simple à gérer sur des hébergements mutualisés). Reportez-vous à la documentation pour plus de détails sur les différents configurations possibles en fonction de votre environnement.

Voici donc comment je procède :

  • renommez le dossier lib avec le numéro actuellement  utilisé (dans mon cas lib-1.3.3). Cela permet de revenir facilement en arrière si vous rencontrer un problème. Votre application ne doit donc plus fonctionner puisque le dossier lib n’existe plus: c’est normal !
  • décompressez la dernière version au même niveau; vous allez donc avoir un nouveau dossier lib contenant la dernière version (dans mon cas la version 1.3.8)
  • renommez le dossier jelix dans votre application avec le numéro actuellement utilisé (dans mon cas jelix-1.3.3)
  • recopiez le dossier jelix-www du dossier lib dans votre application au même niveau que le dossier jelix que vous venez juste de renommer. Renommez le en Jelix.
  • vérifiez votre application. Elle doit fonctionner correctement.
  • supprimez le dossier lib-1.3.3 et jelix-1.3.3 qui ne vous seront plus utiles

NB : cette procédure s’applique plutôt bien sur l’environnement de production où vous allez avoir une seule application. Mais si comme moi, sur votre environnement de développement vous avez plusieurs applications Jelix indépendantes que vous ne pouvez pas migrer en même temps, il est possible de fonctionner de la manière suivante :

  • renommez le dossier lib avec la version actuellement utilisé (lib-1.3.3 par exemple)
  • décompressez la version cible et renommez également le dossier lib avec sa version (lib-1.3.8)
  • dans l’initialisation de vos applications (fichier application.init.php), pointez vers le bon dossier jelix. Soit lib-1.3.3 si votre application ne doit pas encore changer de version, soit lib-1.3.8 si l’application doit utiliser la version cible
  • Pour le dossier jelix-www la manipulation reste inchangée.

4ème étape : migration vers la branche 1.4

La branche 1.4 apporte bien sûr son lot de nouveautés qui sont surtout des améliorations techniques intrinsèques à Jelix. Toutefois certaines d’entre elles vont demander un petit peu de travail (disparition des variables globale $gJConfig et $gJCoord, nouveau hachage dans l’authentification …)

NB : n’utilisant pas d’authentification sur mon site, je détaillerai plus tard après avoir migré un autre site. A noter que que le nouveau hachage de l’authentification est présent également depuis la version 1.3.4. Vous pouvez donc appliquer cette nouveauté dès que vous migrez vers une version 1.3.4 (Cf. 3ème étape et la documentation), si , comme moi, vous êtes parti d’une version inférieure.

Comme nous partons maintenant d’une version 1.3.8, nous sommes en ordre de bataille pour attaquer la migration. Jelix possède toujours pour chaque version une documentation expliquant la marche à suivre.

  • pour commencer, vous pouvez faire les copies de fichiers comme expliqué à la 3ème étape ci-dessus en remplaçant les versions par la 1.3.8 et la 1.4.5.
  • suivre la documentation de migration à la lettre.

5ème étape : migration vers la branche 1.5

Pour la branche 1.5 la liste des nouveautés est assez longue mais les plus importantes sont la compatibilité minimum avec PHP 5.3 et la génération de réponse HTML par défaut en HTML5. Donc pensez bien à vérifier sur vos environnements qu’il est possible d’avoir PHP 5.3 !

Concernant la migration de la version 1.4.5 vers la 1.5.3 vous procédez exactement comme à la 4ème étape :

Cas particulier:
comme je venais d’une version assez éloignée, j’utilisais encore la méthode getParam() dans les zones. Cette méthode étant obsolète il faut simplement la remplacer par la méthode param(). (Encore une fois la documentation est explicite)

Cas particulier 2 :
je trainais également un générateur jForms (depuis jelix 1.1) qui corrigeait une bricole qui n’a plus lieu d’être car corrigée avec le « builder » par défaut. J’ai donc purement et simplement supprimer l’appel à ce générateur. Ceci étant si vous ne pouvez pas vous en passer, il s’agit juste d’un changement de nomenclature du dossier contenant le plugin et du nom de la classe qui a légèrement changé. Reportez-vous à la documentation et vous devrez vous en sortir (j’ai testé. Mon générateur fonctionne en renommant juste le dossier, le fichier contenant la classe, la classe et en modifiant la classe qu’elle étend)

En conclusion : simplicité et bien documenté

Voilà c’est terminé, mon site est maintenant opérationnel avec la dernière version de Jelix la 1.5.3.

Comme à l’accoutumée, Jelix sur ce point est très bien documenté et permet avec une grande simplicité de migrer rapidement sans embûche vers les dernières versions de votre framework préféré.

Donc si comme moi, vous avez pris pas mal de retard ou tout simplement vous hésitez à faire ce changement, j’espère vous avoir rassuré.

Vous avez des questions ou des remarques à faire sur ce billet, n’hésitez pas à me laisser un commentaire.

2 réflexions au sujet de « Jelix, changement de version pas à pas »

    • Certes sur ce site, je suis loin d’utiliser toutes les possibilités de Jelix mais il a été plus long de rédiger le billet que d’effectuer la migration et la mise en ligne.
      Il faut être méthodique dans les changements et çà passe comme une lettre à la poste.
      Avec un bon IDE ou éditeur de texte, il y a moyen de trouver et modifier rapidement ce qui est indiqué dans les documentations de migration.
      Bon courage pour tes futures migrations !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *