Skip to content

Failure with phpstan/phpstan-phpunit and PHPStan cache usage #297

@Wohlie

Description

@Wohlie

Hi, I'm using this extension together with phpstan/phpstan-phpunit.

bitexpert/phpstan-magento         v0.29.0 PHPStan Magento Extension
phpstan/phpstan                   1.10.7  PHPStan - PHP Static Analysis Tool
phpstan/phpstan-phpunit           1.3.10  PHPUnit extensions and rules for PHPStan

Without PHPStan cache, everything works fine. If I enable PHPStan cache, I receive get the following error on the second run, where that cache is used:

In ExtensionInterfaceAutoloader.php line 93:
                                                                                                            
  [InvalidArgumentException]                                                                                
  PHPStan\PhpDoc\PHPUnit\MockObjectTypeNodeResolverInterface does not exist and has no extension interface  
                                                                                                            

Exception trace:
  at /opt/composer/vendor/bitexpert/phpstan-magento/src/bitExpert/PHPStan/Magento/Autoload/ExtensionInterfaceAutoloader.php:93
 bitExpert\PHPStan\Magento\Autoload\ExtensionInterfaceAutoloader->getFileContents() at /opt/composer/vendor/bitexpert/phpstan-magento/src/bitExpert/PHPStan/Magento/Autoload/ExtensionInterfaceAutoloader.php:69
 bitExpert\PHPStan\Magento\Autoload\ExtensionInterfaceAutoloader->autoload() at n/a:n/a
 ReflectionClass->__construct() at /opt/composer/vendor/bitexpert/phpstan-magento/src/bitExpert/PHPStan/Magento/Autoload/ExtensionAutoloader.php:87
 bitExpert\PHPStan\Magento\Autoload\ExtensionAutoloader->getFileContents() at /opt/composer/vendor/bitexpert/phpstan-magento/src/bitExpert/PHPStan/Magento/Autoload/ExtensionAutoloader.php:70
 bitExpert\PHPStan\Magento\Autoload\ExtensionAutoloader->autoload() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/SourceLocator/AutoloadFunctionsSourceLocator.php:41
 PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadFunctionsSourceLocator->locateIdentifier() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/AggregateSourceLocator.php:26
 PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator->locateIdentifier() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/MemoizingSourceLocator.php:33
 PHPStan\BetterReflection\SourceLocator\Type\MemoizingSourceLocator->locateIdentifier() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflector/DefaultReflector.php:32
 PHPStan\BetterReflection\Reflector\DefaultReflector->reflectClass() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/Reflector/MemoizingReflector.php:45
 PHPStan\Reflection\BetterReflection\Reflector\MemoizingReflector->reflectClass() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/BetterReflectionProvider.php:149
 PHPStan\Reflection\BetterReflection\BetterReflectionProvider->hasClass() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ReflectionProvider/MemoizingReflectionProvider.php:35
 PHPStan\Reflection\ReflectionProvider\MemoizingReflectionProvider->hasClass() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/ResultCache/ResultCacheManager.php:552
 PHPStan\Analyser\ResultCache\ResultCacheManager->getProjectExtensionFiles() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/ResultCache/ResultCacheManager.php:528
 PHPStan\Analyser\ResultCache\ResultCacheManager->save() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/ResultCache/ResultCacheManager.php:363
 PHPStan\Analyser\ResultCache\ResultCacheManager->PHPStan\Analyser\ResultCache\{closure}() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/ResultCache/ResultCacheManager.php:386
 PHPStan\Analyser\ResultCache\ResultCacheManager->process() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseApplication.php:108
 PHPStan\Command\AnalyseApplication->analyse() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseCommand.php:173
 PHPStan\Command\AnalyseCommand->execute() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php:259
 _PHPStan_e0e4f009c\Symfony\Component\Console\Command\Command->run() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php:870
 _PHPStan_e0e4f009c\Symfony\Component\Console\Application->doRunCommand() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php:261
 _PHPStan_e0e4f009c\Symfony\Component\Console\Application->doRun() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php:157
 _PHPStan_e0e4f009c\Symfony\Component\Console\Application->run() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan:124
 _PHPStan_e0e4f009c\{closure}() at phar:///opt/composer/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan:125
 require() at /opt/composer/vendor/phpstan/phpstan/phpstan:8
 include() at /usr/local/bin/phpstan:120

analyse [-c|--configuration CONFIGURATION] [-l|--level LEVEL] [--no-progress] [--debug] [-a|--autoload-file AUTOLOAD-FILE] [--error-format ERROR-FORMAT] [-b|--generate-baseline [GENERATE-BASELINE]] [--allow-empty-baseline] [--memory-limit MEMORY-LIMIT] [--xdebug] [--fix] [--watch] [--pro] [--] [<paths>...]

My configuration is the following:

includes:
    - /opt/composer/vendor/bitexpert/phpstan-magento/extension.neon
    - /opt/composer/vendor/phpstan/phpstan-phpunit/extension.neon

parameters:
    level: 7
    checkMissingIterableValueType: false
    tmpDir: ./volumes/phpstan
    bootstrapFiles:
        - ./src/vendor/autoload.php
    magento:
        magentoRoot: ./src

Any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions