moduleManager = $moduleManager; $this->fullModuleList = $fullModuleList; $this->getExtensionInformation = $getExtensionInformation; $this->configUtils = $configUtils; $this->getModuleName = $getModuleName; } /** * Retrieve status of Plumrocket module * * @param string $moduleName * @return int */ public function execute(string $moduleName): int { $moduleName = $this->getModuleName->execute($moduleName); $hasModule = $this->moduleManager->isEnabled("Plumrocket_$moduleName"); if (! $hasModule) { return $this->fullModuleList->has("Plumrocket_$moduleName") ? ExtensionStatusInterface::DISABLED_FROM_CLI : ExtensionStatusInterface::NOT_INSTALLED; } $extensionInformation = $this->getExtensionInformation->execute($moduleName); if ($isEnabledConfigPath = $extensionInformation->getIsEnabledFieldConfigPath()) { return $this->configUtils->isSetFlag($isEnabledConfigPath) ? ExtensionStatusInterface::ENABLED : ExtensionStatusInterface::DISABLED; } return ExtensionStatusInterface::ENABLED; } }