Skip to content

Bug: Class Page not found #25

Description

@wernerkrauss

On a Project I discovered the following error:

[ERROR] Could not process "/var/www/html/path/to/src/Pages/Product.php" file, due to:
"System error: "Class "Page" not found"

The code making problems is something like:

[
    'Title' =>_t('Product.Title', 'Product Title'),
]

when running _t() inside an array.

Passing _t() to a variable directly, works

$labels['Title'] = _t('Product.Title', 'Product Title');

When I skip \Rector\Php81\Rector\Array_\FirstClassCallableRector, it works.

TODO:

  • make demo that throws this error
  • create Issue at rector

Stack Trace:

Stack trace:                                                                                                   
         #0 vendor/rector/rector/vendor/composer/ClassLoader.php(576): include()                                        
         #1 vendor/rector/rector/vendor/composer/ClassLoader.php(427): Composer\Autoload\{closure}()                    
         #2 [internal function]: Composer\Autoload\ClassLoader->loadClass()                                             
         #3 vendor/rector/rector/src/PhpParser/Node/Value/ValueResolver.php(285): defined()                             
         #4 vendor/rector/rector/src/PhpParser/Node/Value/ValueResolver.php(219):                                       
         Rector\PhpParser\Node\Value\ValueResolver->resolveClassConstFetch()                                            
         #5 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php(134):                     
         Rector\PhpParser\Node\Value\ValueResolver->Rector\PhpParser\Node\Value\{closure}()                             
         #6 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php(98):                      
         PhpParser\ConstExprEvaluator->evaluate()                                                                       
         #7 vendor/rector/rector/src/PhpParser/Node/Value/ValueResolver.php(188):                                       
         PhpParser\ConstExprEvaluator->evaluateDirectly()                                                               
         #8 vendor/rector/rector/src/PhpParser/Node/Value/ValueResolver.php(113):                                       
         Rector\PhpParser\Node\Value\ValueResolver->resolveExprValueForConst()                                          
         #9 vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php(140):                    
         Rector\PhpParser\Node\Value\ValueResolver->getValue()                                                          
         #10 vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php(176):                   
         Rector\NodeCollector\NodeAnalyzer\ArrayCallableMethodMatcher->resolveClassContextType()                        
         #11 vendor/rector/rector/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php(73):                    
         Rector\NodeCollector\NodeAnalyzer\ArrayCallableMethodMatcher->resolveCallerType()                              
         #12 vendor/rector/rector/rules/Php81/Rector/Array_/FirstClassCallableRector.php(101):                          
         Rector\NodeCollector\NodeAnalyzer\ArrayCallableMethodMatcher->match()                                          
         #13 vendor/rector/rector/src/Rector/AbstractRector.php(119):                                                   
         Rector\Php81\Rector\Array_\FirstClassCallableRector->refactor()                                                
         #14 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(103):                         
         Rector\Rector\AbstractRector->enterNode()                                                                      
         #15 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #16 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #17 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(125):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #18 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #19 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #20 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(125):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #21 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #22 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #23 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #24 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #25 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #26 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #27 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #28 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(90):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #29 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200):                         
         PhpParser\NodeTraverser->traverseNode()                                                                        
         #30 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(71):                          
         PhpParser\NodeTraverser->traverseArray()                                                                       
         #31 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(49):                              
         PhpParser\NodeTraverser->traverse()                                                                            
         #32 vendor/rector/rector/src/Application/FileProcessor.php(95):                                                
         Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse()                                                 
         #33 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(183):                                    
         Rector\Application\FileProcessor->processFile()                                                                
         #34 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(160):                                    
         Rector\Application\ApplicationFileProcessor->processFile()                                                     
         #35 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(134):                                    
         Rector\Application\ApplicationFileProcessor->processFiles()                                                    
         #36 vendor/rector/rector/src/Console/Command/ProcessCommand.php(176):                                          
         Rector\Application\ApplicationFileProcessor->run()                                                             
         #37 vendor/rector/rector/vendor/symfony/console/Command/Command.php(285):                                      
         Rector\Console\Command\ProcessCommand->execute()                                                               
         #38 vendor/rector/rector/vendor/symfony/console/Application.php(900):                                          
         RectorPrefix202507\Symfony\Component\Console\Command\Command->run()                                            
         #39 vendor/rector/rector/vendor/symfony/console/Application.php(279):                                          
         RectorPrefix202507\Symfony\Component\Console\Application->doRunCommand()                                       
         #40 vendor/rector/rector/src/Console/ConsoleApplication.php(66):                                               
         RectorPrefix202507\Symfony\Component\Console\Application->doRun()                                              
         #41 vendor/rector/rector/vendor/symfony/console/Application.php(162):                                          
         Rector\Console\ConsoleApplication->doRun()                                                                     
         #42 vendor/rector/rector/bin/rector.php(130): RectorPrefix202507\Symfony\Component\Console\Application->run()  
         #43 vendor/rector/rector/bin/rector(5): require_once('...')                                                    
         #44 vendor/bin/rector(119): include('...')                                                                     
         #45 {main}". On line: 45                                                         

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