Skip to content

Fatal error if composer prepend-autoloader is set to false #1497

Closed
@legoktm

Description

@legoktm

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions