Skip to content

Undefined index autoloaderInWorkingDirectory after upgrading to 0.12.1 #104

@acbramley

Description

@acbramley

I was getting deprecation errors after updating to Drupal 8.8, so went to update phpstan/phpstan-deprecation-rules and mglaman/phpstan-drupal to the latest stable. With the following:

composer require --dev --update-with-dependencies phpstan/phpstan-deprecation-rules:^0.12 mglaman/phpstan-drupal:^0.12

After updating, running ./bin/phpstan analyze was throwing the following error:

Note: Using configuration file /data/phpstan.neon.
PHP Notice:  Undefined index: autoloaderInWorkingDirectory in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php on line 71
Notice: Undefined index: autoloaderInWorkingDirectory in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php on line 71
PHP Fatal error:  Uncaught TypeError: dirname() expects parameter 1 to be string, null given in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php:71
Stack trace:
#0 /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php(71): dirname(NULL)
#1 /data/vendor/mglaman/phpstan-drupal/drupal-autoloader.php(16): PHPStan\Drupal\DrupalAutoloader->register(Object(PHPStan\DependencyInjection\Nette\NetteContainer))
#2 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/CommandHelper.php(227): require_once('/data/vendor/mg...')
#3 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/CommandHelper.php(228): PHPStan\Command\CommandHelper::PHPStan\Command\{closure}('/data/vendor/mg...')
#4 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseCommand.php(61): PHPStan\Command\CommandHelper::begin(Object(_HumbugBoxa750b42bd25b\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBoxa750b42bd25b\Symfony\Component\Console\Output\ConsoleOutput), Array, NULL, NULL, NULL, Array, '/data/phpstan.n...', in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php on line 71
Fatal error: Uncaught TypeError: dirname() expects parameter 1 to be string, null given in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php:71
Stack trace:
#0 /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php(71): dirname(NULL)
#1 /data/vendor/mglaman/phpstan-drupal/drupal-autoloader.php(16): PHPStan\Drupal\DrupalAutoloader->register(Object(PHPStan\DependencyInjection\Nette\NetteContainer))
#2 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/CommandHelper.php(227): require_once('/data/vendor/mg...')
#3 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/CommandHelper.php(228): PHPStan\Command\CommandHelper::PHPStan\Command\{closure}('/data/vendor/mg...')
#4 phar:///data/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseCommand.php(61): PHPStan\Command\CommandHelper::begin(Object(_HumbugBoxa750b42bd25b\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBoxa750b42bd25b\Symfony\Component\Console\Output\ConsoleOutput), Array, NULL, NULL, NULL, Array, '/data/phpstan.n...', in /data/vendor/mglaman/phpstan-drupal/src/Drupal/DrupalAutoloader.php on line 71
make: *** [Makefile:89: phpstan] Error 255

Performing the following downgrades fixed it:

  - Downgrading phpstan/phpstan (0.12.4 => 0.11.19): Loading from cache
  - Downgrading phpstan/phpstan-deprecation-rules (0.12.1 => 0.11.2): Loading from cache
  - Downgrading mglaman/phpstan-drupal (0.12.0 => 0.11.14): Loading from cache

This is our phpstan.neon file:

parameters:
	paths:
		- app/modules/custom/
	customRulesetUsed: true
	reportUnmatchedIgnoredErrors: false
	# Ignore phpstan-drupal extension's rules.
	ignoreErrors:
		- '#\Drupal calls should be avoided in classes, use dependency injection instead#'
		- '#Plugin definitions cannot be altered.#'
		- '#Missing cache backend declaration for performance.#'
		- '#Plugin manager has cache backend specified but does not declare cache tags.#'

includes:
	# Add the phpstan-drupal extension
	- vendor/mglaman/phpstan-drupal/extension.neon
	- vendor/phpstan/phpstan-deprecation-rules/rules.neon

I tried adding the drupal > drupal_root config as well but that produced a different error:
Found section 'drupal' in configuration, but corresponding extension is missing.

Am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions