Chapitre: Migration d'une application jelix 1.0 vers jelix 1.1
« Installation sur un serveur de production | ^ Installation |
− 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 1.1. - 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.1beta1 ¶
jForms
: ce que retournegetModifiedControls()
dépend maintenant du moment où vous appelez la nouvelle méthodeinitModifiedControlsList()
. Il faut donc appeler celle-ci après une initialisation du formulaire pour connaître plus tard après un submit les valeurs modifiées.- Amélioration de la méthode
setFetchMode()
sur la classejDbResultSet
. Les constantes de classes que l'on donne en paramètres ne sont plus celles dejDbResultSet
mais celles dejDbConnection
. Donc il faut utiliserjDbConnection::FETCH_CLASS
au lieu dejDbResultSet::FETCH_CLASS
Pour cause de noms mal orthographiés, les propriétés et méthodes suivantes ont été renommées depuis Jelix 1.1beta1 :
- plugin auth/auth : option profil -> profile
jDb::getProfil()
->jDb::getProfile()
jDb::testProfil()
->jDb::testProfile()
jAclDb::getProfil()
->jAclDb::getProfile()
jAcl2Db::getProfil()
->jAcl2Db::getProfile()
jDbConnection::$profil
->jDbConnection::$profile
jControllerDaoCrud::$dbProfil
->jControllerDaoCrud::$dbProfile
Vous devez donc changer les noms de ces propriétés et méthodes dans le code de vos contrôleurs ou autres classes.
Mettre à jour depuis jelix 1.0.x ¶
Généralités ¶
- La plupart des constantes
JELIX_LIB_*
ont été supprimées (inutiles), saufJELIX_LIB_PATH
,JELIX_LIB_CORE_PATH
etJELIX_LIB_UTILS_PATH
. Aussi remplacez l'utilisation de ces constantes disparues par l'utilisation deJELIX_LIB_PATH
ouJELIX_LIB_UTILS_PATH
. - De même, les constantes
JELIX_PLUGINS_PATH
etJELIX_MODULE_PATH
ont été supprimées. Ne les utilisez plus.
Réponses personnalisées ¶
Dans vos objets réponses personnalisées comme responses/myHtmlResponse.class.php
:
- renommez la méthode
_commonProcess()
endoAfterActions()
. - remplacez <php>require_once (JELIX_LIB_RESPONSE_PATH.'jResponseHtml.class.php');</php> par <php>require_once (JELIX_LIB_CORE_PATH.'response/jResponseHtml.class.php');</php>
Configuration ¶
Dans les fichiers de configurations defaultconfig.ini.php
et autres config.ini.php
, renommez la section [plugins] en [coordplugins].
Formulaires jForms ¶
- Dans les templates, les plugins
{form}
et{formfull}
pour afficher un formulaire jForms ont leur liste de paramètres modifiée. Changez les donc en suivant leur documentation. - Dans les fichiers xml : le nom de la balise racine des fichiers est maintenant uniformisé et s'appelle
<form>
. Renommez donc les balises<forms>
en<form>
. - L'api javascript de jforms a été légèrement modifiée : si vous l'utilisez (mais c'est rarement le cas), vous devez adapter vos scripts.
- L'api de l'objet
jFormBase
a été légèrement modifiée au niveau des méthodes :setReadOnly()
- l'id de la balise form HTML générée a changé (#423) ainsi que les noms des ids des contrôles, pour éviter les collisions et les "deviner" plus facilement. Modifiez donc vos CSS ou votre code javascript qui font appel à ces balises.
Autres API ¶
- La méthode
jDateTime::durationTo()
n'accepte plus un objetjDateTime
en paramètre, mais un objetjDuration
. - Amélioration de la méthode
setFetchMode()
sur la classejDbResultSet
. Les constantes de classes que l'on donne en paramètres ne sont plus celles dejDbResultSet
mais celles dejDbConnection
. Donc il faut utiliserjDbConnection::FETCH_CLASS
au lieu dejDbResultSet::FETCH_CLASS
Pour cause de noms mal orthographiés, les propriétés et méthodes suivantes ont été renommées :
- template plugin formdatasfull renommé en formdatafull
- template plugin formdatas renommé en formdata
jFormsBase::getDatas()
->getAllData()
jFormsDatasource::getDatas()
->getData()
jFormsDatasource::$datas
->$data
jFormsDataContainer::$datas
->$data
jResponseJson::$datas
->$data
jResponseRdf::$datas
->$data
jControllerDaoCrud::_checkDatas()
->_checkData()
- plugin auth/auth : profil -> profile
jDb::getProfil()
->jDb::getProfile()
jDb::testProfil()
->jDb::testProfile()
jAclDb::getProfil()
->jAclDb::getProfile()
jAcl2Db::getProfil()
->jAcl2Db::getProfile()
jDbConnection::$profil
->jDbConnection::$profile
jControllerDaoCrud::$dbProfil
->jControllerDaoCrud::$dbProfile
Vous devez donc changer les noms de ces propriétés et méthodes dans le code de vos contrôleurs ou autres classes.
Mettre à jour depuis jelix 1.0 alpha ou 1.0 beta ¶
- L'ancienne syntaxe des sélecteurs d'actions, avec un "_" au lieu d'un ":" pour séparer le nom du contrôleur du nom de la méthode n'est plus prise en charge : il faut changer vos "vieux" sélecteurs.
- Suivez les instructions de migration de chaque version 1.0 beta et 1.0, et suivez ensuite les instructions ci-dessus.