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

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.4 et inférieur

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

Mettre à jour depuis Jelix 1.5.x

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/.

Suppression ou renommage de fichiers

  • Renommez votre fichier var/config/defaultconfig.ini.php en var/config/mainconfig.ini.php.

Modifications générales

à propos de jForms

Si vous avez développé un plugin "widget" ou "builder" pour jForms, vous devez vérifier que votre implémentation contiennent ces modifications:

  • Nouveau paramètre de boolean sur \jelix\forms\Builder\BuilderBase::outputControlLabel()
  • Nouveau paramètre de boolean sur \jelix\forms\HtmlWidget\WidgetInterface::outputLabel()

Des améliorations ont été faites sur l'affichage des données de formulaires (avec les plugins ctrl_value ou formdatafull). Vérifiez que vos formulaires s'affichent comme vous le souhaitez, et corrigez vos templates ou css le cas échéant. Notament, les contrôles de type group ou choice affichent maintenant correctement leur contenu.

à propos de jDao

De par la nature non prédictible du SQL générée par l'implémentation de l'attribut groupby des élements <methode>, et valable uniquement avec mysql, cet attribut ne doit plus être utilisé. Il sera supprimé dans Jelix 1.7.

Idem pour la méthode jDaoConditions::addItemGroup().

Mise à jour des modules

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

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

  • Dans les fichiers module.xml, indiquez que le module est compatible avec Jelix 1.6 (changer l'attribut maxversion). Exemple :

        <jelix minversion="1.5" maxversion="1.6.*"/>

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

Si vous avez des tests unitaires dans vos modules utilisant Simpletest, migrez les en utilisant PHPUnit. Simpletest ne sera plus fourni dans les prochaines versions de Jelix.

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.

Mise à jour vers Jelix 1.6.2

Jusqu'à Jelix 1.6.1, le wrapper PHPUnit pour jelix (lib/jelix-tests) necessitait l'installation de PHPUnit via Pear. Depuis Jelix 1.6.2, ce n'est plus le cas, vous pouvez utiliser Composer.

Si vous voulez garder votre version PHPUnit installée par Pear

Vous devez modifier votre fichier tests/runtests.php, en ajoutant cette ligne : require_once 'PHPUnit/Autoload.php';


require(__DIR__.'/../application.init.php');

require_once 'PHPUnit/Autoload.php';

require(LIB_PATH.'jelix-tests/phpunit.inc.php');

Si vous voulez installer PHPUnit à partir de Composer

Installez Composer. Créez ensuite un fichier composer.json dans votre appli, au même niveau que votre project.xml.


{
    "name": "mycompany/myapp",
    "type": "application",
    "description": "",
    "keywords": [],
    "require": {
        "php": ">=5.3.3"
    },
    "require-dev" : {
        "phpunit/phpunit": "4.3.*"
    },
    "autoload": {
        "files": [ "../lib/jelix/init.php"  ]
    },
    "minimum-stability": "stable"
}

Lancez ensuite l'installation via Composer


composer install

Dans le fichier tests/runtests.php, vous devez inclure ../vendor/autoload.php :


require(__DIR__.'/../application.init.php');

require(__DIR__.'/../vendor/autoload.php';

require(LIB_PATH.'jelix-tests/phpunit.inc.php');