Skip to content

New symfony 6.1 projects can't be inspected using docker image as they rely on PHP 8.1 #7334

@Gyula-Toth

Description

@Gyula-Toth

Bug report

I've got a project that uses Symfony (a very basic Symfony API used for mocking external services in a local project.
Ever since the 6.1 Symfony release, PHPStan [latest docker image] fails to run for the project.
My theory at the time - seeing that Symfony requires PHP versions have been bumped to 8.1 that this is a language version-specific issue.

To verify this I've cloned a repository, changed the base image to 8.1, and used the newly built image for the same inspection - which worked fine.

I assume We're happy about just bumping the base image to 8.1?

See the following stack trace:

     Internal error: Internal error: syntax error, unexpected token ")" in file /app/mock-server/project/config/bundles.php                                                                                                                  
                                                                                                                                                                                                                                             
     Post the following stack trace to https://github.com/phpstan/phpstan/issues/new?template=Bug_report.md:                                                                                                                                 
     #0 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/app/mock-serve...')                                                                                       
     #1 /app/mock-server/project/vendor/symfony/cache/Adapter/ApcuAdapter.php(21): Composer\Autoload\ClassLoader->loadClass('Symfony\\Compone...')                                                                                           
     #2 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(571): include('/app/mock-serve...')                                                                                                             
     #3 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/app/mock-serve...')                                                                                       
     #4 [internal function]: Composer\Autoload\ClassLoader->loadClass('Symfony\\Compone...')                                                                                                                                                 
     #5 /app/mock-server/project/vendor/symfony/framework-bundle/FrameworkBundle.php(74): class_exists('Symfony\\Compone...')                                                                                                                
     #6 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(571): include('/app/mock-serve...')                                                                                                             
     #7 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/app/mock-serve...')                                                                                       
     #8 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/SourceLocator/AutoloadFunctionsSourceLocator.php(28): Composer\Autoload\ClassLoader->loadClass('Symfony\\Bundle\\...')                          
     #9 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/AggregateSourceLocator.php(28):                                                                                    
     PHPStan\Reflection\BetterReflection\SourceLocator\AutoloadFunctionsSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector), Object(PHPStan\BetterReflection\Identifier\Identifier))                 
     #10 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/SourceLocator/Type/MemoizingSourceLocator.php(33):                                                                                   
     PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector), Object(PHPStan\BetterReflection\Identifier\Identifier))                               
     #11 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflector/DefaultReflector.php(32):                                                                                                  
     PHPStan\BetterReflection\SourceLocator\Type\MemoizingSourceLocator->locateIdentifier(Object(PHPStan\BetterReflection\Reflector\DefaultReflector), Object(PHPStan\BetterReflection\Identifier\Identifier))                               
     #12 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/Reflector/MemoizingReflector.php(45): PHPStan\BetterReflection\Reflector\DefaultReflector->reflectClass('Symfony\\Bundle\\...')                
     #13 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/BetterReflectionProvider.php(151): PHPStan\Reflection\BetterReflection\Reflector\MemoizingReflector->reflectClass('Symfony\\Bundle\\...')      
     #14 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ReflectionProvider/MemoizingReflectionProvider.php(34): PHPStan\Reflection\BetterReflection\BetterReflectionProvider->hasClass('Symfony\\Bundle\\...')          
     #15 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Rules/Classes/ClassConstantRule.php(86): PHPStan\Reflection\ReflectionProvider\MemoizingReflectionProvider->hasClass('Symfony\\Bundle\\...')                               
     #16 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(102): PHPStan\Rules\Classes\ClassConstantRule->processNode(Object(PhpParser\Node\Expr\ClassConstFetch), Object(PHPStan\Analyser\MutatingScope))  
     #17 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2394): PHPStan\Analyser\FileAnalyser->PHPStan\Analyser\{closure}(Object(PhpParser\Node\Expr\ClassConstFetch),                               
     Object(PHPStan\Analyser\MutatingScope))                                                                                                                                                                                                 
     #18 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1418): PHPStan\Analyser\NodeScopeResolver->callNodeCallbackWithExpression(Object(Closure), Object(PhpParser\Node\Expr\ClassConstFetch),     
     Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionContext))                                                                                                                                                     
     #19 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1845): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\ClassConstFetch),                                     
     Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))                                                                                                                                    
     #20 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1835): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\ArrayItem), Object(PHPStan\Analyser\MutatingScope),   
     Object(Closure), Object(PHPStan\Analyser\ExpressionContext))                                                                                                                                                                            
     #21 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(500): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\Array_), Object(PHPStan\Analyser\MutatingScope),       
     Object(Closure), Object(PHPStan\Analyser\ExpressionContext))                                                                                                                                                                            
     #22 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(294): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Return_), Object(PHPStan\Analyser\MutatingScope),      
     Object(Closure))                                                                                                                                                                                                                        
     #23 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(189): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))                           
     #24 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(143): PHPStan\Analyser\FileAnalyser->analyseFile('/app/mock-serve...', Array, Object(PHPStan\Rules\Registry), NULL)                              
     #25 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): PHPStan\Command\WorkerCommand->PHPStan\Command\{closure}(Array)                                            
     #26 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(110): _PHPStan_f22c92df8\Evenement\EventEmitter->emit('data', Array)                                                                  
     #27 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): _PHPStan_f22c92df8\Clue\React\NDJson\Decoder->handleData(Array)                                            
     #28 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/Util.php(62): _PHPStan_f22c92df8\Evenement\EventEmitter->emit('data', Array)                                                                           
     #29 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): _PHPStan_f22c92df8\React\Stream\Util::_PHPStan_f22c92df8\React\Stream\{closure}('{"action":"anal...')      
     #30 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(154): _PHPStan_f22c92df8\Evenement\EventEmitter->emit('data', Array)                                                          
     #31 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201): _PHPStan_f22c92df8\React\Stream\DuplexResourceStream->handleData(Resource id #3733)                                     
     #32 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173): _PHPStan_f22c92df8\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)                                        
     #33 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(106): _PHPStan_f22c92df8\React\EventLoop\StreamSelectLoop->run()                                                                                 
     #34 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\WorkerCommand->execute(Object(_PHPStan_f22c92df8\Symfony\Component\Console\Input\ArgvInput),                  
     Object(_PHPStan_f22c92df8\Symfony\Component\Console\Output\ConsoleOutput))                                                                                                                                                              
     #35 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(856):                                                                                                                                   
     _PHPStan_f22c92df8\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_f22c92df8\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_f22c92df8\Symfony\Component\Console\Output\ConsoleOutput))                      
     #36 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259): _PHPStan_f22c92df8\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\WorkerCommand),                     
     Object(_PHPStan_f22c92df8\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_f22c92df8\Symfony\Component\Console\Output\ConsoleOutput))                                                                                        
     #37 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157):                                                                                                                                   
     _PHPStan_f22c92df8\Symfony\Component\Console\Application->doRun(Object(_PHPStan_f22c92df8\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_f22c92df8\Symfony\Component\Console\Output\ConsoleOutput))                        
     #38 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(96): _PHPStan_f22c92df8\Symfony\Component\Console\Application->run()                                                                                               
     #39 phar:///composer/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(97): _PHPStan_f22c92df8\{closure}()                                                                                                                                
     #40 /composer/vendor/phpstan/phpstan/phpstan(8): require('phar:///compose...')                                                                                                                                                          
     #41 /composer/vendor/bin/phpstan(117): include('/composer/vendo...')                                                                                                                                                                    
     #42 {main}                                                                                                                                                                                                                              
     Child process error (exit code 1):                                                                                                                                                                                                      

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