Merge pull request #2605 from robertboloc/feature-config_optimize_autoload_always
Added config option to optimize the autoloader alwayspull/2614/head
commit
7adc41d02c
|
@ -712,6 +712,8 @@ The following options are supported:
|
||||||
interoperability issues with other autoloaders.
|
interoperability issues with other autoloaders.
|
||||||
* **autoloader-suffix:** Defaults to `null`. String to be used as a suffix for
|
* **autoloader-suffix:** Defaults to `null`. String to be used as a suffix for
|
||||||
the generated Composer autoloader. When null a random one will be generated.
|
the generated Composer autoloader. When null a random one will be generated.
|
||||||
|
* **optimize-autoloader** Defaults to `false`. Always optimize when dumping
|
||||||
|
the autoloader.
|
||||||
* **github-domains:** Defaults to `["github.com"]`. A list of domains to use in
|
* **github-domains:** Defaults to `["github.com"]`. A list of domains to use in
|
||||||
github mode. This is used for GitHub Enterprise setups.
|
github mode. This is used for GitHub Enterprise setups.
|
||||||
* **notify-on-install:** Defaults to `true`. Composer allows repositories to
|
* **notify-on-install:** Defaults to `true`. Composer allows repositories to
|
||||||
|
|
|
@ -180,6 +180,10 @@
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Optional string to be used as a suffix for the generated Composer autoloader. When null a random one will be generated."
|
"description": "Optional string to be used as a suffix for the generated Composer autoloader. When null a random one will be generated."
|
||||||
},
|
},
|
||||||
|
"optimize-autoloader": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Always optimize when dumping the autoloader"
|
||||||
|
},
|
||||||
"prepend-autoloader": {
|
"prepend-autoloader": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If false, the composer autoloader will not be prepended to existing autoloaders, defaults to true."
|
"description": "If false, the composer autoloader will not be prepended to existing autoloaders, defaults to true."
|
||||||
|
|
|
@ -283,6 +283,7 @@ EOT
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
'autoloader-suffix' => array('is_string', function ($val) { return $val === 'null' ? null : $val; }),
|
'autoloader-suffix' => array('is_string', function ($val) { return $val === 'null' ? null : $val; }),
|
||||||
|
'optimize-autoloader' => array($booleanValidator, $booleanNormalizer),
|
||||||
'prepend-autoloader' => array($booleanValidator, $booleanNormalizer),
|
'prepend-autoloader' => array($booleanValidator, $booleanNormalizer),
|
||||||
);
|
);
|
||||||
$multiConfigValues = array(
|
$multiConfigValues = array(
|
||||||
|
|
|
@ -41,12 +41,6 @@ EOT
|
||||||
|
|
||||||
protected function execute(InputInterface $input, OutputInterface $output)
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
{
|
{
|
||||||
if ($input->getOption('optimize')) {
|
|
||||||
$output->writeln('<info>Generating optimized autoload files</info>');
|
|
||||||
} else {
|
|
||||||
$output->writeln('<info>Generating autoload files</info>');
|
|
||||||
}
|
|
||||||
|
|
||||||
$composer = $this->getComposer();
|
$composer = $this->getComposer();
|
||||||
|
|
||||||
$commandEvent = new CommandEvent(PluginEvents::COMMAND, 'dump-autoload', $input, $output);
|
$commandEvent = new CommandEvent(PluginEvents::COMMAND, 'dump-autoload', $input, $output);
|
||||||
|
@ -57,6 +51,14 @@ EOT
|
||||||
$package = $composer->getPackage();
|
$package = $composer->getPackage();
|
||||||
$config = $composer->getConfig();
|
$config = $composer->getConfig();
|
||||||
|
|
||||||
$composer->getAutoloadGenerator()->dump($config, $localRepo, $package, $installationManager, 'composer', $input->getOption('optimize'));
|
$optimize = $input->getOption('optimize') || $config->get('optimize-autoloader');
|
||||||
|
|
||||||
|
if ($optimize) {
|
||||||
|
$output->writeln('<info>Generating optimized autoload files</info>');
|
||||||
|
} else {
|
||||||
|
$output->writeln('<info>Generating autoload files</info>');
|
||||||
|
}
|
||||||
|
|
||||||
|
$composer->getAutoloadGenerator()->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,10 @@ EOT
|
||||||
|
|
||||||
$preferSource = false;
|
$preferSource = false;
|
||||||
$preferDist = false;
|
$preferDist = false;
|
||||||
switch ($composer->getConfig()->get('preferred-install')) {
|
|
||||||
|
$config = $composer->getConfig();
|
||||||
|
|
||||||
|
switch ($config->get('preferred-install')) {
|
||||||
case 'source':
|
case 'source':
|
||||||
$preferSource = true;
|
$preferSource = true;
|
||||||
break;
|
break;
|
||||||
|
@ -93,6 +96,8 @@ EOT
|
||||||
$preferDist = $input->getOption('prefer-dist');
|
$preferDist = $input->getOption('prefer-dist');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$optimize = $input->getOption('optimize-autoloader') || $config->get('optimize-autoloader');
|
||||||
|
|
||||||
$install
|
$install
|
||||||
->setDryRun($input->getOption('dry-run'))
|
->setDryRun($input->getOption('dry-run'))
|
||||||
->setVerbose($input->getOption('verbose'))
|
->setVerbose($input->getOption('verbose'))
|
||||||
|
@ -100,7 +105,7 @@ EOT
|
||||||
->setPreferDist($preferDist)
|
->setPreferDist($preferDist)
|
||||||
->setDevMode(!$input->getOption('no-dev'))
|
->setDevMode(!$input->getOption('no-dev'))
|
||||||
->setRunScripts(!$input->getOption('no-scripts'))
|
->setRunScripts(!$input->getOption('no-scripts'))
|
||||||
->setOptimizeAutoloader($input->getOption('optimize-autoloader'))
|
->setOptimizeAutoloader($optimize)
|
||||||
;
|
;
|
||||||
|
|
||||||
if ($input->getOption('no-plugins')) {
|
if ($input->getOption('no-plugins')) {
|
||||||
|
|
|
@ -81,7 +81,10 @@ EOT
|
||||||
|
|
||||||
$preferSource = false;
|
$preferSource = false;
|
||||||
$preferDist = false;
|
$preferDist = false;
|
||||||
switch ($composer->getConfig()->get('preferred-install')) {
|
|
||||||
|
$config = $composer->getConfig();
|
||||||
|
|
||||||
|
switch ($config->get('preferred-install')) {
|
||||||
case 'source':
|
case 'source':
|
||||||
$preferSource = true;
|
$preferSource = true;
|
||||||
break;
|
break;
|
||||||
|
@ -98,6 +101,8 @@ EOT
|
||||||
$preferDist = $input->getOption('prefer-dist');
|
$preferDist = $input->getOption('prefer-dist');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$optimize = $input->getOption('optimize-autoloader') || $config->get('optimize-autoloader');
|
||||||
|
|
||||||
$install
|
$install
|
||||||
->setDryRun($input->getOption('dry-run'))
|
->setDryRun($input->getOption('dry-run'))
|
||||||
->setVerbose($input->getOption('verbose'))
|
->setVerbose($input->getOption('verbose'))
|
||||||
|
@ -105,7 +110,7 @@ EOT
|
||||||
->setPreferDist($preferDist)
|
->setPreferDist($preferDist)
|
||||||
->setDevMode(!$input->getOption('no-dev'))
|
->setDevMode(!$input->getOption('no-dev'))
|
||||||
->setRunScripts(!$input->getOption('no-scripts'))
|
->setRunScripts(!$input->getOption('no-scripts'))
|
||||||
->setOptimizeAutoloader($input->getOption('optimize-autoloader'))
|
->setOptimizeAutoloader($optimize)
|
||||||
->setUpdate(true)
|
->setUpdate(true)
|
||||||
->setUpdateWhitelist($input->getOption('lock') ? array('lock') : $input->getArgument('packages'))
|
->setUpdateWhitelist($input->getOption('lock') ? array('lock') : $input->getArgument('packages'))
|
||||||
->setWhitelistDependencies($input->getOption('with-dependencies'))
|
->setWhitelistDependencies($input->getOption('with-dependencies'))
|
||||||
|
|
|
@ -36,6 +36,7 @@ class Config
|
||||||
'cache-files-maxsize' => '300MiB',
|
'cache-files-maxsize' => '300MiB',
|
||||||
'discard-changes' => false,
|
'discard-changes' => false,
|
||||||
'autoloader-suffix' => null,
|
'autoloader-suffix' => null,
|
||||||
|
'optimize-autoloader' => false,
|
||||||
'prepend-autoloader' => true,
|
'prepend-autoloader' => true,
|
||||||
'github-domains' => array('github.com'),
|
'github-domains' => array('github.com'),
|
||||||
);
|
);
|
||||||
|
|
|
@ -279,7 +279,12 @@ class Installer
|
||||||
}
|
}
|
||||||
|
|
||||||
// write autoloader
|
// write autoloader
|
||||||
$this->io->write('<info>Generating autoload files</info>');
|
if ($this->optimizeAutoloader) {
|
||||||
|
$this->io->write('<info>Generating optimized autoload files</info>');
|
||||||
|
} else {
|
||||||
|
$this->io->write('<info>Generating autoload files</info>');
|
||||||
|
}
|
||||||
|
|
||||||
$this->autoloadGenerator->dump($this->config, $localRepo, $this->package, $this->installationManager, 'composer', $this->optimizeAutoloader);
|
$this->autoloadGenerator->dump($this->config, $localRepo, $this->package, $this->installationManager, 'composer', $this->optimizeAutoloader);
|
||||||
|
|
||||||
if ($this->runScripts) {
|
if ($this->runScripts) {
|
||||||
|
|
Loading…
Reference in New Issue