sEnvBefore = $sEnvBefore; $this->sEnvAfter = $sEnvAfter; } public function ComputeClasses(): void { if ($this->bClassesInitialized) { return; } $sCurrentEnvt = MetaModel::GetEnvironment(); if ($sCurrentEnvt === $this->sEnvBefore) { $this->aClassesBefore = MetaModel::GetClasses(); } else { $this->aClassesBefore = ModelReflectionSerializer::GetInstance()->GetModelFromEnvironment($this->sEnvBefore); } if ($sCurrentEnvt === $this->sEnvAfter) { $this->aClassesAfter = MetaModel::GetClasses(); } else { $this->aClassesAfter = ModelReflectionSerializer::GetInstance()->GetModelFromEnvironment($this->sEnvAfter); } $this->bClassesInitialized = true; } /*public function SetSelectedExtensions(Config $oConfig, array $aSelectedExtensions) { $oExtensionsMap = new \iTopExtensionsMap(); $oExtensionsMap->LoadChoicesFromDatabase($oConfig); sort($aSelectedExtensions); $this->aExtensionToRemove = $oExtensionsMap->GetMissingExtensions($aSelectedExtensions); sort($this->aExtensionToRemove); \SetupLog::Info(__METHOD__, null, ['aExtensionToRemove' => $this->aExtensionToRemove]); }*/ public function GetRemovedClasses(): array { $this->ComputeClasses(); if (count($this->aRemovedClasses) == 0) { if (count($this->aClassesBefore) == 0) { return $this->aRemovedClasses; } if (count($this->aClassesAfter) == 0) { return $this->aRemovedClasses; } $aExtensionsNames = array_diff($this->aClassesBefore, $this->aClassesAfter); $this->aRemovedClasses = []; $aClasses = array_values($aExtensionsNames); sort($aClasses); foreach ($aClasses as $i => $sClass) { $this->aRemovedClasses[] = $sClass; } } return $this->aRemovedClasses; } }