diff --git a/doc/06-config.md b/doc/06-config.md index 76306f9d0..7e6a14a2e 100644 --- a/doc/06-config.md +++ b/doc/06-config.md @@ -126,6 +126,10 @@ autoloader. When null a random one will be generated. Defaults to `false`. If `true`, always optimize when dumping the autoloader. +## sort-packages + +Defaults to `false`. If `true`, Keep packages sorted in `composer.json`. + ## classmap-authoritative Defaults to `false`. If `true`, the Composer autoloader will only load classes diff --git a/src/Composer/Command/ConfigCommand.php b/src/Composer/Command/ConfigCommand.php index c81f0de01..33ce327d3 100644 --- a/src/Composer/Command/ConfigCommand.php +++ b/src/Composer/Command/ConfigCommand.php @@ -322,6 +322,7 @@ EOT }, ), 'autoloader-suffix' => array('is_string', function ($val) { return $val === 'null' ? null : $val; }), + 'sort-packages' => array($booleanValidator, $booleanNormalizer), 'optimize-autoloader' => array($booleanValidator, $booleanNormalizer), 'classmap-authoritative' => array($booleanValidator, $booleanNormalizer), 'prepend-autoloader' => array($booleanValidator, $booleanNormalizer), diff --git a/src/Composer/Command/RequireCommand.php b/src/Composer/Command/RequireCommand.php index d79a6444e..bbdf15681 100644 --- a/src/Composer/Command/RequireCommand.php +++ b/src/Composer/Command/RequireCommand.php @@ -117,7 +117,7 @@ EOT $versionParser->parseConstraints($constraint); } - $sortPackages = $input->getOption('sort-packages'); + $sortPackages = $input->getOption('sort-packages') || $composer->getConfig()->get('sort-packages'); if (!$this->updateFileCleanly($json, $baseRequirements, $requirements, $requireKey, $removeKey, $sortPackages)) { foreach ($requirements as $package => $version) { diff --git a/src/Composer/Config.php b/src/Composer/Config.php index 936586338..27b05c1b4 100644 --- a/src/Composer/Config.php +++ b/src/Composer/Config.php @@ -39,6 +39,7 @@ class Config 'bin-compat' => 'auto', 'discard-changes' => false, 'autoloader-suffix' => null, + 'sort-packages' => false, 'optimize-autoloader' => false, 'classmap-authoritative' => false, 'prepend-autoloader' => true,