sCode = ''; $this->sLabel = ''; $this->sDescription = ''; $this->sSource = self::SOURCE_WIZARD; $this->bMandatory = false; $this->sMoreInfoUrl = ''; $this->bMarkedAsChosen = false; $this->sVersion = ITOP_VERSION; $this->sInstalledVersion = ''; $this->aModules = []; $this->aModuleVersion = []; $this->aModuleInfo = []; $this->sSourceDir = ''; $this->bVisible = true; $this->aMissingDependencies = []; } /** * @since 3.3.0 * @return bool */ public function CanBeUninstalled(): bool { if (!is_null($this->bCanBeUninstalled)) { return $this->bCanBeUninstalled; } foreach ($this->aModuleInfo as $sModuleCode => $aModuleInfo) { if ($aModuleInfo['uninstallable'] !== 'yes') { return false; } } return true; } public function __serialize(): array { return [ 'sCode' => $this->sCode, 'sSource' => $this->sSource, 'sVersion' => $this->sVersion, 'aModules' => $this->aModules, 'aModuleVersion' => $this->aModuleVersion, 'aModuleInfo' => $this->aModuleInfo, ]; } public function __unserialize(array $aData): void { $this->sCode = $aData['sCode'] ?? ''; $this->sSource = $aData['sSource'] ?? ''; $this->sVersion = $aData['sVersion'] ?? ''; $this->aModules = $aData['aModules'] ?? ''; $this->aModuleVersion = $aData['aModuleVersion'] ?? ''; $this->aModuleInfo = $aData['aModuleInfo'] ?? ''; } public function __toString(): string { return json_encode($this->__serialize(), JSON_PRETTY_PRINT); } }