Adjust dump command, add another test, update docs, refs #1344
parent
023ff131aa
commit
790a25c348
|
@ -15,8 +15,8 @@ matrix:
|
|||
before_script:
|
||||
- sudo apt-get install parallel
|
||||
- rm -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini
|
||||
- composer install --dev --prefer-source
|
||||
- bin/composer install --dev --prefer-source
|
||||
- composer install --prefer-source
|
||||
- bin/composer install --prefer-source
|
||||
- git config --global user.name travis-ci
|
||||
- git config --global user.email travis@example.com
|
||||
|
||||
|
|
|
@ -387,6 +387,7 @@ performance.
|
|||
* **--optimize (-o):** Convert PSR-0/4 autoloading to classmap to get a faster
|
||||
autoloader. This is recommended especially for production, but can take
|
||||
a bit of time to run so it is currently not done by default.
|
||||
* **--no-dev:** Disables autoload-dev rules.
|
||||
|
||||
## licenses
|
||||
|
||||
|
|
|
@ -518,22 +518,23 @@ Example:
|
|||
|
||||
### autoload-dev <span>(root-only)</span>
|
||||
|
||||
This section allows to define autoload rules for development purpose.
|
||||
This section allows to define autoload rules for development purposes.
|
||||
|
||||
If you're generating classmaps from your PSR-0 namespaces, you're probably concerned
|
||||
about performance, if so, you'll also don't want your test classes to be mixed up
|
||||
with your regular classes in those classmaps.
|
||||
Classes needed to run the test suite should not be included in the main autoload
|
||||
rules to avoid polluting the autoloader in production and when other people use
|
||||
your package as a dependency.
|
||||
|
||||
Therefore, it is a good idea to rely on a dedicated path for your unit tests.
|
||||
Therefore, it is a good idea to rely on a dedicated path for your unit tests
|
||||
and to add it within the autoload-dev section.
|
||||
|
||||
Example:
|
||||
|
||||
{
|
||||
"autoload": {
|
||||
"psr-0": { "MyLibrary": "src/" }
|
||||
"psr-4": { "MyLibrary\\": "src/" }
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-0": { "MyLibrary\\Tests": "tests/" }
|
||||
"psr-4": { "MyLibrary\\Tests": "tests/" }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ class DumpAutoloadCommand extends Command
|
|||
->setDescription('Dumps the autoloader')
|
||||
->setDefinition(array(
|
||||
new InputOption('optimize', 'o', InputOption::VALUE_NONE, 'Optimizes PSR0 packages to be loaded with classmaps too, good for production.'),
|
||||
new InputOption('dev', null, InputOption::VALUE_NONE, 'Enables dev autoload.'),
|
||||
new InputOption('no-dev', null, InputOption::VALUE_NONE, 'Disables autoload-dev rules.'),
|
||||
))
|
||||
->setHelp(<<<EOT
|
||||
<info>php composer.phar dump-autoload</info>
|
||||
|
@ -61,7 +61,7 @@ EOT
|
|||
}
|
||||
|
||||
$generator = $composer->getAutoloadGenerator();
|
||||
$generator->setDevMode($input->getOption('dev'));
|
||||
$generator->setDevMode(!$input->getOption('no-dev'));
|
||||
$generator->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ class AutoloadGeneratorTest extends TestCase
|
|||
// Assert that autoload_classmap.php was correctly generated.
|
||||
$this->assertAutoloadFiles('classmap', $this->vendorDir.'/composer', 'classmap');
|
||||
}
|
||||
|
||||
|
||||
public function testMainPackageDevAutoloading()
|
||||
{
|
||||
$package = new Package('a', '1.0', '1.0');
|
||||
|
@ -181,6 +181,9 @@ class AutoloadGeneratorTest extends TestCase
|
|||
));
|
||||
$package->setDevAutoload(array(
|
||||
'files' => array('devfiles/foo.php'),
|
||||
'psr-0' => array(
|
||||
'Main' => 'tests/'
|
||||
),
|
||||
));
|
||||
|
||||
$this->repository->expects($this->once())
|
||||
|
@ -197,11 +200,11 @@ class AutoloadGeneratorTest extends TestCase
|
|||
// generate autoload files with the dev mode set to true
|
||||
$this->generator->setDevMode(true);
|
||||
$this->generator->dump($this->config, $this->repository, $package, $this->im, 'composer', true, '_1');
|
||||
|
||||
|
||||
// check standard autoload
|
||||
$this->assertAutoloadFiles('main4', $this->vendorDir.'/composer');
|
||||
$this->assertAutoloadFiles('main5', $this->vendorDir.'/composer');
|
||||
$this->assertAutoloadFiles('classmap7', $this->vendorDir.'/composer', 'classmap');
|
||||
|
||||
|
||||
// make sure dev autoload is correctly dumped
|
||||
$this->assertAutoloadFiles('files2', $this->vendorDir.'/composer', 'files');
|
||||
}
|
||||
|
@ -238,7 +241,7 @@ class AutoloadGeneratorTest extends TestCase
|
|||
// make sure dev autoload is disabled when dev mode is set to false
|
||||
$this->assertFalse(is_file($this->vendorDir.'/composer/autoload_files.php'));
|
||||
}
|
||||
|
||||
|
||||
public function testVendorDirSameAsWorkingDir()
|
||||
{
|
||||
$this->vendorDir = $this->workingDir;
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Main' => array($baseDir . '/src', $baseDir . '/tests'),
|
||||
);
|
|
@ -12,9 +12,5 @@
|
|||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$loader = require __DIR__.'/../src/bootstrap.php';
|
||||
|
||||
// to be removed
|
||||
$loader->add('Composer\Test', __DIR__);
|
||||
|
||||
require __DIR__.'/../src/bootstrap.php';
|
||||
require __DIR__.'/Composer/TestCase.php';
|
||||
|
|
Loading…
Reference in New Issue