$sEnv]); $sPHPExec = trim(utils::GetConfig()->Get('php_path')); $sOutput = ""; $iRes = 0; exec(sprintf("$sPHPExec %s/get_model_reflection.php --env='%s'", __DIR__, $sEnv), $sOutput, $iRes); if ($iRes != 0) { $this->LogErrorWithProperLogger("Cannot get classes1", null, ['env' => $sEnv, 'code' => $iRes, "output" => $sOutput]); throw new CoreException("Cannot get classes from env ".$sEnv); } $aClasses = json_decode($sOutput[0] ?? null, true); if (false === $aClasses) { $this->LogErrorWithProperLogger("Invalid JSON", null, ['env' => $sEnv, "output" => $sOutput]); throw new Exception("cannot get classes"); } if (!is_array($aClasses)) { $this->LogErrorWithProperLogger("not an array", null, ['env' => $sEnv, "classes" => $aClasses, "output" => $sOutput]); throw new Exception("cannot get classes from $sEnv"); } return $aClasses; } //could be shared with others in log APIs ? private function LogErrorWithProperLogger($sMessage, $sChannel = null, $aContext = []): void { if (ContextTag::Check(ContextTag::TAG_SETUP)) { SetupLog::Error($sMessage, $sChannel, $aContext); } else { IssueLog::Error($sMessage, $sChannel, $aContext); } } }