diff --git a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php index ec5fb3f94e4b4..5cc5fd1f1a0e2 100644 --- a/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php +++ b/setup/src/Magento/Setup/Module/Di/App/Task/Operation/Area.php @@ -85,6 +85,8 @@ public function doOperation() } } + $this->sortDefinitions($definitionsCollection); + $areaCodes = array_merge([App\Area::AREA_GLOBAL], $this->areaList->getCodes()); foreach ($areaCodes as $areaCode) { $config = $this->configReader->generateCachePerScope($definitionsCollection, $areaCode); @@ -121,4 +123,18 @@ public function getName() { return 'Area configuration aggregation'; } + + /** + * Sort definitions to make reproducible result + * + * @param DefinitionsCollection $definitionsCollection + */ + private function sortDefinitions(DefinitionsCollection $definitionsCollection): void + { + $definitions = $definitionsCollection->getCollection(); + + ksort($definitions); + + $definitionsCollection->initialize($definitions); + } }