Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ModuleRegistryUninstaller.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Setup\Model;
7 
11 use Symfony\Component\Console\Output\OutputInterface;
12 
17 {
21  private $dataSetupFactory;
22 
26  private $deploymentConfig;
27 
31  private $writer;
32 
36  private $loader;
37 
46  public function __construct(
47  DataSetupFactory $dataSetupFactory,
48  DeploymentConfig $deploymentConfig,
49  DeploymentConfig\Writer $writer,
50  Loader $loader
51  ) {
52  $this->dataSetupFactory = $dataSetupFactory;
53  $this->deploymentConfig = $deploymentConfig;
54  $this->writer = $writer;
55  $this->loader = $loader;
56  }
57 
65  public function removeModulesFromDb(OutputInterface $output, array $modules)
66  {
67  $output->writeln(
68  '<info>Removing ' . implode(', ', $modules) . ' from module registry in database</info>'
69  );
71  $setup = $this->dataSetupFactory->create();
72  foreach ($modules as $module) {
73  $setup->deleteTableRow('setup_module', 'module', $module);
74  }
75  }
76 
84  public function removeModulesFromDeploymentConfig(OutputInterface $output, array $modules)
85  {
86  $output->writeln(
87  '<info>Removing ' . implode(', ', $modules) . ' from module list in deployment configuration</info>'
88  );
89  $configuredModules = $this->deploymentConfig->getConfigData(
91  );
92  $existingModules = $this->loader->load($modules);
93  $newModules = [];
94  foreach (array_keys($existingModules) as $module) {
95  $newModules[$module] = isset($configuredModules[$module]) ? $configuredModules[$module] : 0;
96  }
97  $this->writer->saveConfig(
98  [
100  [\Magento\Framework\Config\ConfigOptionsListConstants::KEY_MODULES => $newModules]
101  ],
102  true
103  );
104  }
105 }
removeModulesFromDeploymentConfig(OutputInterface $output, array $modules)
$loader
Definition: autoload.php:8
__construct(DataSetupFactory $dataSetupFactory, DeploymentConfig $deploymentConfig, DeploymentConfig\Writer $writer, Loader $loader)
$deploymentConfig
$setup
Definition: trigger.php:12