35 private $dependencyChecker;
45 ModuleLoader $moduleLoader,
49 $this->allModules = $moduleLoader->load();
50 foreach (array_keys($this->allModules) as $module) {
51 $this->allModules[$module][
'selected'] =
true;
52 $this->allModules[$module][
'disabled'] =
true;
55 $this->dependencyChecker = $objectManagerProvider->
get()
67 if (isset($this->allModules)) {
68 if (isset($selectedModules)) {
69 $diff = array_diff(array_keys($this->allModules), $selectedModules);
70 foreach ($diff as $module) {
71 $this->allModules[$module][
'selected'] =
false;
74 $this->deselectDisabledModules();
76 $disableModules = $this->getListOfDisableModules();
77 if (isset($disableModules)) {
78 foreach ($disableModules as $module) {
79 $this->allModules[$module][
'disabled'] =
false;
83 foreach ($this->allModules as $module) {
84 if (!$module[
'selected'] && $module[
'disabled']) {
85 $this->allModules[$module[
'name']][
'disabled'] =
false;
98 private function getListOfDisableModules()
101 $enabledModules = $this->getListOfEnabledModules();
102 foreach ($this->allModules as $module) {
103 $errorMessages = $this->dependencyChecker->checkDependenciesWhenDisableModules(
107 if (
sizeof($errorMessages[$module[
'name']]) === 0) {
108 $canBeDisabled[] = $module[
'name'];
111 return $canBeDisabled;
119 private function getListOfEnabledModules()
121 $enabledModules = [];
122 foreach ($this->allModules as $module) {
123 if ($module[
'selected']) {
124 $enabledModules[] = $module[
'name'];
127 return $enabledModules;
138 $this->allModules[$moduleName][
'selected'] =
$status;
146 private function deselectDisabledModules()
149 if (isset($existingModules)) {
150 foreach ($existingModules as $module =>
$value) {
152 $this->allModules[$module][
'selected'] =
false;
__construct(ModuleLoader $moduleLoader, DeploymentConfig $deploymentConfig, ObjectManagerProvider $objectManagerProvider)
setIsEnabled($status, $moduleName)
getAllModules(array $selectedModules=null)