Closed
Description
To reproduce, create a composer.json with:
{
"require": {
"squizlabs/php_codesniffer": "dev-master"
},
"config": {
"prepend-autoloader": false
}
}
Run composer install
. Then try vendor/bin/phpcs --version
. I get the following output:
PHP Fatal error: Uncaught Error: Class 'Composer\Autoload\ClassLoader' not found in /home/km/projects/sandbox/phpcs-test/vendor/composer/autoload_real.php:23
Stack trace:
#0 /home/km/projects/sandbox/phpcs-test/vendor/autoload.php(7): ComposerAutoloaderInit0b88db96a6b16f1b2f158f8142d34d63::getLoader()
#1 /home/km/projects/sandbox/phpcs-test/vendor/squizlabs/php_codesniffer/autoload.php(73): include('/home/km/projec...')
#2 [internal function]: PHP_CodeSniffer\Autoload::load('Composer\\Autolo...')
#3 /home/km/projects/sandbox/phpcs-test/vendor/composer/autoload_real.php(23): spl_autoload_call('Composer\\Autolo...')
#4 /home/km/projects/sandbox/phpcs-test/vendor/autoload.php(7): ComposerAutoloaderInit0b88db96a6b16f1b2f158f8142d34d63::getLoader()
#5 /home/km/projects/sandbox/phpcs-test/vendor/squizlabs/php_codesniffer/autoload.php(73): include('/home/km/projec...')
#6 [internal function]: PHP_CodeSniffer\Autoload::load('PHP_CodeSniffer...')
#7 /home/km/projects/sandbox/phpcs-test/vendor/squizlabs/php_codesniffer/bin/phpcs(17): s in /home/km/projects/sandbox/phpcs-test/vendor/composer/autoload_real.php on line 23
I found this when testing upgrading MediaWiki's CodeSniffer ruleset to 3.0. MediaWiki sets prepend-autoloader: false for performance reasons since most of our autoloaded classes are in MediaWiki's autoloader, not composer's.