Chapitre: Migration depuis une version précédente de jelix
« Nouveautés | ^ Introduction |
− Table des matières
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
envar/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'attributmaxversion
). 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');