Bonjour la liste,
J'ai constaté un comportement qui m'a surpris en ce qui concerne les mises à jour des plugins. Soit c'est le comportement voulu, soit c'est moi qui m'y prends mal, soit c'est un bug.
Comme je ne suis pas sûr, avant d'ouvrir un rapport de bug, je voulais voir avec la liste.
Pour résumer, lors d'une mise à jour d'un plugin, la fonction de mise à jour correspondant au numéro de schéma courant est appelée : ça me semble logique.
En revanche, lors d'une nouvelle installation, ce n'est pas le cas : seule la fonction d'installation est appelée.
Moi ça me semblait pourtant logique d'appeler aussi la mise à jour correspondant au numéro de schéma en cours.
Du coup, il y peu y avoir inconsistance entre les plugins mis à jour par incréments, et les plugins nouvellement installés non ?
En général, les fonctions de mise à jour font des actions relatives aux tables du plugin, donc ça n'occasionne pas de différence entre les 2 cas.
Par contre, si on veut y faire d'autres actions (supprimer des options de config obsolètes par exemples), ben les plugins mise à jour en bénéficieront, mais pas ceux nouvellement installés.
J'espère être clair.
Concrètement, pour être sûr j'ai procédé de la sorte : plugin de test avec les fonction d'upgrade suivante :
$maj['create'] = array(array('spip_log', 'installation', 'test'));
$maj['2.0.0'] = array(array('spip_log', 'mise à jour 2', 'test'));
$maj['3.0.0'] = array(array('spip_log', 'mise à jour 3', 'test'));
- Au départ, le plugin a un schéma 1.0.0.
En activant le plugin, la fonction d'installation est bien appelée.
- Incrémentation du schéma à 2.0.0, rechargement de la page d'admin des plugins : la fonction de mise à jour n°2 est bien appelée.
- Incrémentation du schéma à 3.0.0, rechargement de la page d'admin des plugins : la fonction de mise à jour n°2 est bien appelée.
- Désinstallation, puis réinstallation : seule la fonction d'installation est appelée, alors que je m'attendais à ce que la fonction de mise à jour 3.0.0 soit également appelée.
Voilà,
à vous lire
C.R