Compare commits

...

3 Commits

Author SHA1 Message Date
Timothee
aa082dda3b N°9161 2026-03-03 15:47:10 +01:00
odain
2b976797dc ci: code style 2026-03-03 11:01:53 +01:00
odain
862da59e8b phpstan cleanup 2026-03-03 10:50:04 +01:00
2 changed files with 35 additions and 21 deletions

View File

@@ -140,35 +140,34 @@ class ModuleDependencySort
}
//include all modules
$iInDegreeCounterIncludingOutsideModules = count($oModule->GetUnresolvedDependencyModuleNames());
$aCountDepsByModuleId[$sModuleId] = [$iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules, $sModuleId];
$aCountDepsByModuleId[$sModuleId] = new ModuleCountDepency($sModuleId, $iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules);
}
$aRes = [];
while (count($aUnresolvedDependencyModules) > 0) {
asort($aCountDepsByModuleId);
uasort($aCountDepsByModuleId, function (array $aDeps1, array $aDeps2) {
//compare $iInDegreeCounter
$res = $aDeps1[0] - $aDeps2[0];
uasort($aCountDepsByModuleId, function (ModuleCountDepency $oModuleCountDepency1, ModuleCountDepency $oModuleCountDepency2) {
$res = $oModuleCountDepency1->iInDegreeCounter - $oModuleCountDepency2->iInDegreeCounter;
if ($res != 0) {
return $res;
}
//compare $iInDegreeCounterIncludingOutsideModules
$res = $aDeps1[1] - $aDeps2[1];
$res = $oModuleCountDepency1->iInDegreeCounterIncludingOutsideModules - $oModuleCountDepency2->iInDegreeCounterIncludingOutsideModules;
if ($res != 0) {
return $res;
}
//alphabetical order at least
return strcmp($aDeps1[2], $aDeps2[2]);
return strcmp($oModuleCountDepency1->sModuleId, $oModuleCountDepency2->sModuleId);
});
$bOneLoopAtLeast = false;
foreach ($aCountDepsByModuleId as $sModuleId => $iInDegreeCounter) {
foreach ($aCountDepsByModuleId as $sModuleId => $oModuleCountDepency) {
/** @var ModuleCountDepency $oModuleCountDepency */
$oModule = $aUnresolvedDependencyModules[$sModuleId];
if ($bOneLoopAtLeast && ($iInDegreeCounter > 0)) {
if ($bOneLoopAtLeast && ($oModuleCountDepency->iInDegreeCounter > 0)) {
break;
}
@@ -183,10 +182,10 @@ class ModuleDependencySort
if (!array_key_exists($sModuleId2, $aCountDepsByModuleId)) {
continue;
}
$aDepCount = $aCountDepsByModuleId[$sModuleId2];
$iInDegreeCounter = $aDepCount[0] - 1;
$iInDegreeCounterIncludingOutsideModules = $aDepCount[1];
$aCountDepsByModuleId[$sModuleId2] = [$iInDegreeCounter, $iInDegreeCounterIncludingOutsideModules, $sModuleId2];
/** @var ModuleCountDepency $oModuleCountDepency2 */
$oModuleCountDepency2 = $aCountDepsByModuleId[$sModuleId2];
$iInDegreeCounter = $oModuleCountDepency2->iInDegreeCounter - 1;
$aCountDepsByModuleId[$sModuleId2] = new ModuleCountDepency($sModuleId2, $iInDegreeCounter, $oModuleCountDepency2->iInDegreeCounterIncludingOutsideModules);
}
unset($aDependsOnModuleName[$oModule->GetModuleName()]);
@@ -199,3 +198,18 @@ class ModuleDependencySort
$aUnresolvedDependencyModules = $aRes;
}
}
class ModuleCountDepency
{
public string $sModuleId;
public int $iInDegreeCounter;
public int $iInDegreeCounterIncludingOutsideModules;
public function __construct(string $sModuleId, int $iInDegreeCounter, int $iInDegreeCounterIncludingOutsideModules)
{
$this->iInDegreeCounter = $iInDegreeCounter;
$this->iInDegreeCounterIncludingOutsideModules = $iInDegreeCounterIncludingOutsideModules;
$this->sModuleId = $sModuleId;
}
}

View File

@@ -83,7 +83,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add('<fieldset id="summary"><legend>Installation Parameters</legend>');
$oPage->add('<div id="params_summary">');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Extensions to be installed">Extensions to be installed</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Extensions to be installed">Extensions to be installed</a>');
$aExtensionsAdded = json_decode($this->oWizard->GetParameter('extensions_added'), true);
if (count($aExtensionsAdded) > 0) {
@@ -97,7 +97,7 @@ class WizStepSummary extends AbstractWizStepInstall
}
$oPage->add($sExtensionsAdded);
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Extensions to be uninstalled">Extensions to be uninstalled</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Extensions to be uninstalled">Extensions to be uninstalled</a>');
$aExtensionsRemoved = json_decode($this->oWizard->GetParameter('removed_extensions'), true) ?? [];
$aExtensionsNotUninstallable = json_decode($this->oWizard->GetParameter('extensions_not_uninstallable'));
@@ -117,7 +117,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add($sExtensionsRemoved);
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Database Parameters">Database Parameters</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Database Parameters">Database Parameters</a><ul>');
$oPage->add('<li>Server Name: '.$aInstallParams['database']['server'].'</li>');
$oPage->add('<li>DB User Name: '.$aInstallParams['database']['user'].'</li>');
$oPage->add('<li>DB user password: ***</li>');
@@ -133,11 +133,11 @@ class WizStepSummary extends AbstractWizStepInstall
}
$oPage->add('</ul></div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Data Model Configuration">Data Model Configuration</a>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Data Model Configuration">Data Model Configuration</a>');
$oPage->add($this->oWizard->GetParameter('display_choices'));
$oPage->add('</div>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Other Parameters">Other Parameters</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Other Parameters">Other Parameters</a><ul>');
if ($sMode == 'install') {
$oPage->add('<li>Default language: '.$aInstallParams['language'].'</li>');
}
@@ -153,7 +153,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oPage->add('</ul></div>');
if ($sMode == 'install') {
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" aria-label="Administrator Account">Administrator Account</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" aria-label="Administrator Account">Administrator Account</a><ul>');
$oPage->add('<li>Login: '.$aInstallParams['admin_account']['user'].'</li>');
$oPage->add('<li>Password: '.$aInstallParams['admin_account']['pwd'].'</li>');
$oPage->add('<li>Language: '.$aInstallParams['admin_account']['language'].'</li>');
@@ -162,7 +162,7 @@ class WizStepSummary extends AbstractWizStepInstall
$aMiscOptions = $aInstallParams['options'];
if (count($aMiscOptions) > 0) {
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title">Miscellaneous Options</a><ul>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" >Miscellaneous Options</a><ul>');
foreach ($aMiscOptions as $sKey => $sValue) {
$oPage->add('<li>'.$sKey.': '.$sValue.'</li>');
}
@@ -178,7 +178,7 @@ class WizStepSummary extends AbstractWizStepInstall
$oParams->LoadFromHash($aInstallParams);
$oParams->ToXML($oDoc, null, 'installation');
$sXML = $oDoc->saveXML();
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title">XML Config file</a><ul><pre>');
$oPage->add('<div class="closed"><a class="title ibo-setup-summary-title" href="#" >XML Config file</a><ul><pre>');
$oPage->add(utils::EscapeHtml($sXML));
$oPage->add('</pre></ul></div>');
}