Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions
Status Class Reference

Public Member Functions

 __construct (ModuleList\Loader $loader, ModuleList $list, Writer $writer, ConflictChecker $conflictChecker, DependencyChecker $dependencyChecker)
 
 checkConstraints ( $isEnabled, $modulesToBeChanged, $currentlyEnabledModules=null, $prettyMessage=false)
 
 setIsEnabled ($isEnabled, $modules)
 
 getModulesToChange ($isEnabled, $modules)
 

Detailed Description

A service for controlling module status

@SuppressWarnings(PHPMD.CouplingBetweenObjects)

Definition at line 17 of file Status.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( ModuleList\Loader  $loader,
ModuleList  $list,
Writer  $writer,
ConflictChecker  $conflictChecker,
DependencyChecker  $dependencyChecker 
)

Constructor

Parameters
ModuleList\Loader$loader
ModuleList$list
Writer$writer
ConflictChecker$conflictChecker
DependencyChecker$dependencyChecker

Definition at line 63 of file Status.php.

69  {
70  $this->loader = $loader;
71  $this->list = $list;
72  $this->writer = $writer;
73  $this->conflictChecker = $conflictChecker;
74  $this->dependencyChecker = $dependencyChecker;
75  }

Member Function Documentation

◆ checkConstraints()

checkConstraints (   $isEnabled,
  $modulesToBeChanged,
  $currentlyEnabledModules = null,
  $prettyMessage = false 
)

Whether it is allowed to enable or disable specified modules

Parameters
bool$isEnabled
string[]$modulesToBeChanged
string[]$currentlyEnabledModules
bool$prettyMessage
Returns
string[]

Definition at line 87 of file Status.php.

92  {
93  $errorMessages = [];
94  if ($isEnabled) {
95  $errorModulesDependency = $this->dependencyChecker->checkDependenciesWhenEnableModules(
96  $modulesToBeChanged,
97  $currentlyEnabledModules
98  );
99  $errorModulesConflict = $this->conflictChecker->checkConflictsWhenEnableModules(
100  $modulesToBeChanged,
101  $currentlyEnabledModules
102  );
103  } else {
104  $errorModulesDependency = $this->dependencyChecker->checkDependenciesWhenDisableModules(
105  $modulesToBeChanged,
106  $currentlyEnabledModules
107  );
108  $errorModulesConflict = [];
109  }
110 
111  foreach ($errorModulesDependency as $moduleName => $missingDependencies) {
112  if (!empty($missingDependencies)) {
113  if ($prettyMessage) {
114  $errorMessages[] = $this->createShortErrorMessage($isEnabled, $moduleName);
115  } else {
116  $errorMessages = array_merge(
117  $errorMessages,
118  $this->createVerboseErrorMessage($isEnabled, $moduleName, $missingDependencies)
119  );
120  }
121  }
122  }
123 
124  foreach ($errorModulesConflict as $moduleName => $conflictingModules) {
125  if (!empty($conflictingModules)) {
126  $errorMessages[] = "Cannot enable $moduleName because it conflicts with other modules:";
127  $errorMessages[] = implode("\n", $conflictingModules);
128  }
129  }
130 
131  return $errorMessages;
132  }

◆ getModulesToChange()

getModulesToChange (   $isEnabled,
  $modules 
)

Get a list of modules that will be changed

Parameters
bool$isEnabled
string[]$modules
Returns
string[]

Definition at line 164 of file Status.php.

165  {
166  $changed = [];
167  foreach ($this->getAllModules($modules) as $name) {
168  $currentStatus = $this->list->has($name);
169  if (in_array($name, $modules)) {
170  if ($isEnabled != $currentStatus) {
171  $changed[] = $name;
172  }
173  }
174  }
175  return $changed;
176  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ setIsEnabled()

setIsEnabled (   $isEnabled,
  $modules 
)

Sets specified modules to enabled or disabled state

Performs other necessary routines, such as cache cleanup

Parameters
bool$isEnabled
string[]$modules
Returns
void

Definition at line 143 of file Status.php.

144  {
145  $result = [];
146  foreach ($this->getAllModules($modules) as $name) {
147  $currentStatus = $this->list->has($name);
148  if (in_array($name, $modules)) {
149  $result[$name] = (int)$isEnabled;
150  } else {
151  $result[$name] = (int)$currentStatus;
152  }
153  }
154  $this->writer->saveConfig([ConfigFilePool::APP_CONFIG => ['modules' => $result]], true);
155  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

The documentation for this class was generated from the following file: