71 $allModules = $this->fullModuleList->getNames();
72 $enabledModules = $this->moduleList->getNames();
73 $disabledModules = array_diff($allModules, $enabledModules);
75 return $disabledModules;
85 return $this->fullModuleList->getAll();
98 protected function getNewModuleChanges($moduleName, $active, $setupVersion, $state)
101 $newModule = $this->moduleFactory->create();
103 'name' => $moduleName,
105 'setup_version' => $setupVersion,
109 $newModule->setData(
$data);
112 'name' =>
$data[
'name'],
113 'setup_version' =>
$data[
'setup_version'],
117 return $moduleChanges;
126 protected function getFinalCounts($moduleChanges)
129 $finalDbModuleArray = $this->moduleCollectionFactory->create()->getItems();
132 return $value->getState();
135 $stateValues = array_map($stateCallback, $finalDbModuleArray);
136 $installedCount = count($stateValues);
137 $disabledCount = $enabledCount = $uninstalledCount = 0;
139 foreach ($stateValues as $state) {
155 $installedCount -= $uninstalledCount;
162 'changes' => $moduleChanges
176 if ($this->moduleManager->isOutputEnabled($moduleName)) {
210 $changesArrayKeys = array_keys(
$changes);
211 foreach ($changesArrayKeys as $changesKey) {
212 if ($changesKey !=
'state' && $changesKey !=
'active' && $changesKey !=
'setup_version') {
227 protected function setUninstalledModuleChanges(array $dbModuleArray, array $arrayModuleNames)
229 foreach ($dbModuleArray as $module) {
231 if (!in_array($module->getName(), $arrayModuleNames) && $module->getState() !=
Config::UNINSTALLED) {
233 'name' => $module->getName(),
234 'setup_version' => $module->getSetupVersion(),
239 return $moduleChanges;
252 public function getModuleData($refresh =
true)
254 $callback =
function (Module
$value) {
260 $dbModuleArray = $this->moduleCollectionFactory->create()->getItems();
262 $nameValues = array_map($callback, $dbModuleArray);
265 foreach ($configModules as $moduleName => $module) {
266 unset($module[
'sequence']);
267 $state = $this->
getState($moduleName);
269 $module[
'state'] = $state;
270 $module[
'active'] = $active;
272 if (!in_array($moduleName, $nameValues)) {
273 $moduleChanges[] = $this->getNewModuleChanges($moduleName, $active, $module[
'setup_version'], $state);
275 $dbModule = $dbModuleArray[array_search($moduleName, $nameValues)];
276 $changeTest = $dbModule->getData();
277 $changes = array_diff($module, $changeTest);
280 if (count($changesCleanArray) > 0 ||
281 ($this->moduleManager->isOutputEnabled($changeTest[
'name']) &&
282 $module[
'setup_version'] !=
null)) {
284 'entity_id' => $changeTest[
'entity_id'],
285 'name' => $changeTest[
'name'],
287 'setup_version' => $module[
'setup_version'],
291 $dbModule->setData(
$data);
295 'name' =>
$data[
'name'],
296 'setup_version' =>
$data[
'setup_version'],
303 $arrayModuleNames = array_keys($configModules);
304 $uninstalledModuleChanges = $this->setUninstalledModuleChanges($dbModuleArray, $arrayModuleNames);
305 if (is_array($uninstalledModuleChanges)) {
306 $moduleChanges[] = $uninstalledModuleChanges;
309 $finalObject = $this->getFinalCounts($moduleChanges);
getCleanChangesArray($changes)
__construct(ModuleListInterface $moduleList, FullModuleList $fullModuleList, Manager $moduleManager, \Magento\NewRelicReporting\Model\ModuleFactory $moduleFactory, \Magento\NewRelicReporting\Model\ResourceModel\Module\CollectionFactory $moduleCollectionFactory)