Ejemplo n.º 1
0
 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;
     }
 }