Apparemment, Magento 2 prend désormais en charge les scripts de désinstallation qui permettent la modification du schéma db lors de la désinstallation d'un module (horay !!).
Comme expliqué ici, cela ne fonctionne que pour le module installé via composer.
(J'espère que cela fonctionnera à l'avenir pour tous les modules, mais c'est un problème différent).
Disons que j'ai un module appelé Testing_Demo
.
Ce module fait 3 choses que j'aimerais supprimer lors de sa désinstallation.
- ajoute une table appelée
testing_demo
. Je dois donc le laisser tomber. - ajoute un attribut de produit appelé
demo
. Donc, cela doit être supprimé - contient certains paramètres
system->configuration
qui peuvent ou non être stockés dans le tableaucore_config_data
. Tous ces paramètres ont le chemintesting_demo/...
. Il faut donc aussi les supprimer.
À quoi devrait ressembler mon script de désinstallation de module?
Réponses:
Recherche de la base de code pour
UninstallInterface
donne\Magento\Setup\Model\UninstallCollector
.Si vous recherchez
UninstallCollector
alors, vous constaterez qu'il est utilisé dans\Magento\Setup\Console\Command\ModuleUninstallCommand
. Particulièrement pertinent:Ensemble, nous pouvons supposer:
Uninstall
classe à{module}\Setup\Uninstall.php
.Magento\Framework\Setup\UninstallInterface
.uninstall
méthode contenant toute logique nécessaire.Alors, voici votre squelette:
Supprimez toutes les tables, colonnes ou données à l'aide des méthodes appropriées. Voir
\Magento\Framework\DB\Adapter\AdapterInterface
, disponible en$setup->getConnection()
.la source