Raccourcis : Contenu - rubriques - sous rubriques
EN FR
Jelix 1.4.8

Chapitre: Migration depuis une version précédente de jelix

« Nouveautés ^ Introduction
Changer de langue : EN

Lors d'une migration d'une version Jelix à une autre, il y a toujours au moins ces étapes à faire :

  • Remplacer le répertoire lib/ de jelix par celui contenu dans le paquet jelix.
  • Ne pas oublier de remettre dans le nouveau répertoire lib/ vos éventuelles bibliothèques personnelles si vous en aviez mis dans l'ancien.
  • supprimer tous les fichiers dans le répertoire temp/votre_appli
  • adapter votre code en suivant les instructions indiquées pour chaque ancienne version de Jelix. Voir ci-dessous.

Mettre à jour depuis Jelix 1.2 et inférieur

Suivez les indications de migration de chaque version intermédiaire (voir les manuels correspondant), avant de mettre à jour pour jelix 1.3.

Mettre à jour depuis Jelix 1.4.0

  • si vous le souhaitez, vous pouvez utiliser le nouveau système de hashage dans jAuth, apparue dans la version 1.4.0 (et 1.2.10, 1.3.4), pour stocker les mots de passe de manière plus sécurisée. Suivez alors la doc de migration dédiée.
  • Le script de mise à jour de jacl2db remplace dans la table jacl2_rights tous les id de ressource nuls par "-", qui est la nouvelle valeur pour indiquer "toutes les ressources". Ceci pour pouvoir établir des clés primaires correctes sur cette table avec certains SGBD comme Oracle.

Mettre à jour depuis Jelix 1.3

Voici les instructions à suivre dans l'ordre.

Sauvegarde

Tout d'abord, faites une sauvegarde de votre base de données, de vos fichiers de configuration etc.

Répertoires temporaires

Comme d'habitude, vous devez vider le contenu de votre répertoire temp/votreapp/.

Appliquer le patch pour jelix 1.4.8

Depuis la dernière version de la branche 1.4, il y a eu quelques correctifs dans les scripts de migrations, mais qui n'ont pas été publié dans une nouvelle version de Jelix 1.4, faute d'avoir un PHP assez vieux pour regénérer les paquets.

Téléchargez donc https://download.jelix.org/jelix/releases/1.4.x/1.4.8/jelix_1.4.8_patch.zip, et dézippez-le à partir du répertoire parent de lib/. Cela remplacera quelques fichiers. Vous pouvez trouvez ceci également ici https://github.com/jelix/jelix/tree/jelix-1.4.x/build/patch .

Changez vos points d'entrées

jApp fournissant de nouvelles API, il faut changer le code de vos points d'entrées.

  • L'instance du coordinateur doit être indiqué à jApp.
  • Le chemin du fichier de configuration doit être lui aussi indiqué à jApp au lieu d'être passé en paramètre au coordinateur
  • Voyez un exemple dans le template dans lib/jelix-scripts/templates/www/index.php.tpl

Voici un exemple typique:


require ('../application.init.php');
require (JELIX_LIB_CORE_PATH.'request/jClassicRequest.class.php');

checkAppOpened();

// Charge la configuration
jApp::loadConfig('index/config.ini.php');

// nouveau coordinateur, que l'on indique à jApp
jApp::setCoord(new jCoordinator());

// Nouvel objet request, que l'on passe au coordinateur, pour traiter le routage.
jApp::coord()->process(new jClassicRequest());

Suppression de fichiers

Modifications générales

Mise à jour des modules

Mettez à jour les sources des modules tiers que vous avez installés, et qui sont compatibles avec Jelix 1.4.

Et pour vos propres modules, vous devez adapter le code source en faisant les modifications suivantes :

  • La variable globale $gJConfig est obsolète. Utilisez maintenant jApp::config() pour récupérer la configuration.
  • La variable globale $gJCoord est obsolète. Utilisez maintenant jApp::coord() pour récupérer l'objet coordinateur.
  • Le code de locale 'en_EN' est maintenant obsolète. Vous avez alors deux solutions si vous l'utilisez dans vos applications :
    • une solution rapide mais temporaire : ajoutez le paramètre "en=en_EN" dans la section "[langToLocale]" de la configuration principale.
    • une meilleure solution: renommez vos repertoires locales/en_EN en locales/en_US, utilisez le code en_US comme locale par défaut (si vous utilisiez en_EN), et si vous stockiez le code en_EN dans vos données, changez les avec en_US. C'est la solution préférée, car le code en_EN ne sera plus supporté dans des versions futures de Jelix.
  • Dans les fichiers module.xml, indiquez que le module est compatible avec Jelix 1.4 (changer l'attribut maxversion). Exemple :

        <jelix minversion="1.3" maxversion="1.4.*"/>
  • Les méthodes jCoordinator::isModuleEnabled() and jCoordinator::getModulePath() sont désormais obsolète, elles ont été copiée dans jApp, il faut donc utiliser celle de jApp.
  • Dans vos pages statiques HTML (via jResponseBasicHtml) et page d'erreur statiques (error.en_US.php etc) la variable $basePath doit être renommée en $BASEPATH. (Jelix 1.4.1)

Lisez la liste détaillée des changements pour savoir la liste des nouvelles classes et méthodes que vous pouvez utiliser.

Mise à jour de Jelix

Après toutes les modifications effectuées, vous devez lancer le script installer.php de votre application. Le module jelix fera le reste des modifications, en particulier :

  • Le paramètre de configuration availableLanguageCode du plugin autolocale, si vous l'utilisez, est déplacé vers la configuration principale et renommé en availableLocales.