Exemplo n.º 1
0
 /**
  * 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();
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
 /**
  * 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]));
 }