Dans la version 3.0, nous avions l'impossibilité de personnaliser l'installation et la désinstallation d'un module, outre le fait de travailler avec des fichiers SQL.
Dans la version 4.0, nous avons intégré un nouveau système qui permet d'aller bien plus loin : Le ModuleSetup.
Il nous faut créer un fichier LeNomDeVotreModuleSetup.class.php qui contiendra une classe du même nom.
Cette classe est une classe fille de DefaultModuleSetup et devra contenir une fonction install() et uninstall().
Exemple :
Code PHP :
A chaque installation, et à chaque désinstallation, se fichier sera appelé. C'est donc à l'intérieur des deux fonctions que vous allez exécuter les différentes tâches que vous souhaitez faire. Créer des tables, les supprimer, etc.
Vous allez également pouvoir faire les mises à jour de votre module à travers se fichier en rajoutant une fonction upgrade() :
Code PHP :
De cette manière, l'utilisateur qui mettra à jour le module à travers l'administration, ne perdra pas ses données en cas de changement au niveau des tables ou autres. C'est à vous maintenant de procéder à la conversion des différentes choses.
L'argument passé en paramètre renvoi le numéro de version installée sur le serveur de l'utilisateur. En valeur de retour, il faudra renvoyer le nouveau numéro de version. Si la fonction ne retourne rien ou est nulle, alors la page de mise à jour renverra une erreur à l'utilisateur.
Dans la version 4.0, nous avons intégré un nouveau système qui permet d'aller bien plus loin : Le ModuleSetup.
Le fonctionnement
Il nous faut créer un fichier LeNomDeVotreModuleSetup.class.php qui contiendra une classe du même nom.
Cette classe est une classe fille de DefaultModuleSetup et devra contenir une fonction install() et uninstall().
Exemple :
Code PHP :
<?php class MonModuleSetup extends DefaultModuleSetup { public function install() { } public function uninstall() { } } ?>
A chaque installation, et à chaque désinstallation, se fichier sera appelé. C'est donc à l'intérieur des deux fonctions que vous allez exécuter les différentes tâches que vous souhaitez faire. Créer des tables, les supprimer, etc.
La mise à jour d'un module
Vous allez également pouvoir faire les mises à jour de votre module à travers se fichier en rajoutant une fonction upgrade() :
Code PHP :
public function upgrade($installed_version) { return null; }
De cette manière, l'utilisateur qui mettra à jour le module à travers l'administration, ne perdra pas ses données en cas de changement au niveau des tables ou autres. C'est à vous maintenant de procéder à la conversion des différentes choses.
L'argument passé en paramètre renvoi le numéro de version installée sur le serveur de l'utilisateur. En valeur de retour, il faudra renvoyer le nouveau numéro de version. Si la fonction ne retourne rien ou est nulle, alors la page de mise à jour renverra une erreur à l'utilisateur.