জন্য কোডবেস খোঁজ UninstallInterface
দেয় \Magento\Setup\Model\UninstallCollector
।
আপনি যদি UninstallCollector
তখন অনুসন্ধান করেন তবে আপনি এটি ব্যবহার করেছেন \Magento\Setup\Console\Command\ModuleUninstallCommand
। বিশেষত প্রাসঙ্গিক:
$uninstalls = $this->collector->collectUninstall();
$setupModel = $this->objectManager->get('Magento\Setup\Module\Setup');
foreach ($modules as $module) {
if (isset($uninstalls[$module])) {
$output->writeln("<info>Removing data of $module</info>");
$uninstalls[$module]->uninstall(
$setupModel,
new ModuleContext($this->moduleResource->getDbVersion($module) ?: '')
);
} else {
$output->writeln("<info>No data to clear in $module</info>");
}
}
একসাথে রাখুন, আমরা লক্ষ্য করতে পারি:
- আপনার মডিউলে একটি
Uninstall
বর্গ থাকতে হবে {module}\Setup\Uninstall.php
।
- এই শ্রেণীর বাস্তবায়ন করা উচিত
Magento\Framework\Setup\UninstallInterface
।
- এই শ্রেণীর
uninstall
কোনও প্রয়োজনীয় যুক্তিযুক্ত একটি পদ্ধতি থাকা উচিত ।
- কোনও সেটআপ বা আপগ্রেড স্ক্রিপ্টের মতো একই জিনিস এবং পদ্ধতিগুলি আপনার কাছে উপলব্ধ।
সুতরাং, এখানে আপনার কঙ্কাল:
<?php
namespace \Custom\Module\Setup;
class Uninstall implements \Magento\Framework\Setup\UninstallInterface
{
/**
* Module uninstall code
*
* @param \Magento\Framework\Setup\SchemaSetupInterface $setup
* @param \Magento\Framework\Setup\ModuleContextInterface $context
* @return void
*/
public function uninstall(
\Magento\Framework\Setup\SchemaSetupInterface $setup,
\Magento\Framework\Setup\ModuleContextInterface $context
) {
$setup->startSetup();
// Uninstall logic here
$setup->endSetup();
}
}
উপযুক্ত পদ্ধতি ব্যবহার করে যে কোনও সারণী, কলাম বা ডেটা সরান। দেখুন \Magento\Framework\DB\Adapter\AdapterInterface
, হিসাবে উপলব্ধ $setup->getConnection()
।