private function addRootConfig(array &$jsonData, RootPackageFile $packageFile) { $overrideOrder = $packageFile->getOverrideOrder(); $installInfos = $packageFile->getInstallInfos(); // Pass false to exclude base configuration values $configValues = $packageFile->getConfig()->toRawArray(false); if (count($overrideOrder) > 0) { $jsonData['override-order'] = $overrideOrder; } if (count($configValues) > 0) { $jsonData['config'] = (object) $configValues; } if (array() !== $packageFile->getPluginClasses(false)) { $jsonData['plugins'] = $packageFile->getPluginClasses(); sort($jsonData['plugins']); } if (count($installInfos) > 0) { $packagesData = array(); foreach ($installInfos as $installInfo) { $installData = new stdClass(); $installData->{'install-path'} = $installInfo->getInstallPath(); if (InstallInfo::DEFAULT_INSTALLER_NAME !== $installInfo->getInstallerName()) { $installData->installer = $installInfo->getInstallerName(); } if ($installInfo->hasEnabledBindingUuids()) { $installData->{'enabled-bindings'} = array(); foreach ($installInfo->getEnabledBindingUuids() as $uuid) { $installData->{'enabled-bindings'}[] = $uuid->toString(); } sort($installData->{'enabled-bindings'}); } if ($installInfo->hasDisabledBindingUuids()) { $installData->{'disabled-bindings'} = array(); foreach ($installInfo->getDisabledBindingUuids() as $uuid) { $installData->{'disabled-bindings'}[] = $uuid->toString(); } sort($installData->{'disabled-bindings'}); } $packagesData[$installInfo->getPackageName()] = $installData; } ksort($packagesData); $jsonData['packages'] = (object) $packagesData; } }