Skip to content

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

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions