1
0
Fork 0

Adjust dump command, add another test, update docs, refs #1344

pull/2773/merge
Jordi Boggiano 2014-03-01 20:39:06 +01:00
parent 023ff131aa
commit 790a25c348
7 changed files with 32 additions and 21 deletions

View File

@ -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

View File

@ -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

View File

@ -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/" }
}
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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'),
);

View File

@ -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';