/** * Sets specified modules to enabled or disabled state * * Performs other necessary routines, such as cache cleanup * * @param bool $isEnabled * @param string[] $modules * @return void */ public function setIsEnabled($isEnabled, $modules) { $result = []; foreach ($this->getAllModules($modules) as $name) { $currentStatus = $this->list->has($name); if (in_array($name, $modules)) { $result[$name] = $isEnabled; } else { $result[$name] = $currentStatus; } } $segment = $this->deploymentConfigFactory->create($result); $this->writer->update($segment); $this->cleanup->clearCaches(); $this->cleanup->clearCodeGeneratedFiles(); }
public function testUpdateModulesSequence() { $varDir = $this->getMockForAbstractClass('Magento\\Framework\\Filesystem\\Directory\\WriteInterface'); $varDir->expects($this->exactly(2))->method('getAbsolutePath')->willReturn('/var'); $this->filesystem->expects($this->exactly(2))->method('getDirectoryWrite')->willReturn($varDir); $allModules = ['Foo_One' => [], 'Bar_Two' => [], 'New_Module' => []]; $this->moduleLoader->expects($this->once())->method('load')->willReturn($allModules); $expectedModules = ['Bar_Two' => 0, 'Foo_One' => 1, 'New_Module' => 1]; $this->config->expects($this->atLeastOnce())->method('isAvailable')->willReturn(true); $this->deploymentConfigFactory->expects($this->once())->method('create')->with($expectedModules)->willReturn($this->deploymentConfig); $newObject = $this->createObject(false, false); $this->configReader->expects($this->once())->method('load')->willReturn(['modules' => ['Bar_Two' => 0, 'Foo_One' => 1, 'Old_Module' => 0]]); $this->configWriter->expects($this->once())->method('update')->with($this->deploymentConfig); $this->logger->expects($this->at(0))->method('log')->with('File system cleanup:'); $this->logger->expects($this->at(1))->method('log')->with('The directory \'/var\' doesn\'t exist - skipping cleanup'); $this->logger->expects($this->at(3))->method('log')->with('Updating modules:'); $newObject->updateModulesSequence(); }
/** * Updates modules in deployment configuration * * @return void */ public function updateModulesSequence() { $this->assertDeploymentConfigExists(); $this->log->log('File system cleanup:'); $this->deleteDirContents(DirectoryList::GENERATION); $this->deleteDirContents(DirectoryList::CACHE); $this->log->log('Updating modules:'); $allModules = array_keys($this->moduleLoader->load()); $deploymentConfig = $this->deploymentConfigReader->load(); $currentModules = isset($deploymentConfig['modules']) ? $deploymentConfig['modules'] : []; $result = []; foreach ($allModules as $module) { if (isset($currentModules[$module]) && !$currentModules[$module]) { $result[$module] = 0; } else { $result[$module] = 1; } } $segment = $this->deploymentConfigFactory->create($result); $this->deploymentConfigWriter->update($segment); }
public function testCreate() { $this->object = new DeploymentConfigFactory(); $this->assertInstanceOf('Magento\\Framework\\Module\\ModuleList\\DeploymentConfig', $this->object->create(['Module_One' => 0, 'Module_Two' => 1])); }