rector-symfony
rector-symfony copied to clipboard
Error when running `StringExtensionToConfigBuilderRector` on simple configuration file
PHP version: 8.3.9 Symfony version: 7.1 Rector version: 1.2.3
See demo here: https://getrector.com/demo/de776077-7f25-484f-bfea-1f5cf23a0443.
Applying the StringExtensionToConfigBuilderRector
rule to this file:
<?php
declare(strict_types=1);
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Http\Discovery\Psr17Factory;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ServerRequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileFactoryInterface;
use Psr\Http\Message\UriFactoryInterface;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->alias(RequestFactoryInterface::class, 'http_discovery.psr17_factory');
$services->alias(ResponseFactoryInterface::class, 'http_discovery.psr17_factory');
$services->alias(ServerRequestFactoryInterface::class, 'http_discovery.psr17_factory');
$services->alias(StreamFactoryInterface::class, 'http_discovery.psr17_factory');
$services->alias(UploadedFileFactoryInterface::class, 'http_discovery.psr17_factory');
$services->alias(UriFactoryInterface::class, 'http_discovery.psr17_factory');
$services->set('http_discovery.psr17_factory', Psr17Factory::class);
};
results in this error:
[ERROR] Could not process "config/packages/http_discovery.php" file, due to:
"System error: "Split extensions "" to multiple separated files first"
Stack trace:
#0
vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Closure/StringExtensionToConfigBuild
erRector.php(130):
Rector\Symfony\NodeAnalyzer\SymfonyClosureExtensionMatcher->match(Object(PhpParser\Node\Expr\Closure))
#1 vendor/rector/rector/src/Rector/AbstractRector.php(139):
Rector\Symfony\CodeQuality\Rector\Closure\StringExtensionToConfigBuilderRector->refactor(Object(PhpParser\Node
\Expr\Closure))
#2 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(113):
Rector\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Expr\Closure))
#3 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196):
PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Return_))
#4 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(105):
PhpParser\NodeTraverser->traverseArray(Array)
#5 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(196):
PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))
#6 vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(85):
PhpParser\NodeTraverser->traverseArray(Array)
#7 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(41):
PhpParser\NodeTraverser->traverse(Array)
#8 vendor/rector/rector/src/Application/FileProcessor.php(113):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)
#9 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(184):
Rector\Application\FileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#10 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(161):
Rector\Application\ApplicationFileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#11 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(138):
Rector\Application\ApplicationFileProcessor->processFiles(Array, Object(Rector\ValueObject\Configuration),
Object(Closure), Object(Closure))
#12 vendor/rector/rector/src/Console/Command/ProcessCommand.php(131):
Rector\Application\ApplicationFileProcessor->run(Object(Rector\ValueObject\Configuration),
Object(RectorPrefix202408\Symfony\Component\Console\Input\ArgvInput))
#13 vendor/rector/rector/vendor/symfony/console/Command/Command.php(327):
Rector\Console\Command\ProcessCommand->execute(Object(RectorPrefix202408\Symfony\Component\Console\Input\ArgvI
nput), Object(RectorPrefix202408\Symfony\Component\Console\Output\ConsoleOutput))
#14 vendor/rector/rector/vendor/symfony/console/Application.php(960):
RectorPrefix202408\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202408\Symfony\Component\
Console\Input\ArgvInput), Object(RectorPrefix202408\Symfony\Component\Console\Output\ConsoleOutput))
#15 vendor/rector/rector/vendor/symfony/console/Application.php(333):
RectorPrefix202408\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Console\Command\ProcessCo
mmand), Object(RectorPrefix202408\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202408\Symfony\Component\Console\Output\ConsoleOutput))
#16 vendor/rector/rector/src/Console/ConsoleApplication.php(53):
RectorPrefix202408\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202408\Symfony\Component\Co
nsole\Input\ArgvInput), Object(RectorPrefix202408\Symfony\Component\Console\Output\ConsoleOutput))
#17 vendor/rector/rector/vendor/symfony/console/Application.php(216):
Rector\Console\ConsoleApplication->doRun(Object(RectorPrefix202408\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202408\Symfony\Component\Console\Output\ConsoleOutput))
#18 vendor/rector/rector/bin/rector.php(130): RectorPrefix202408\Symfony\Component\Console\Application->run()
#19 vendor/rector/rector/bin/rector(5): require_once('/var/www/influe...')
#20 vendor/bin/rector(119): include('/var/www/influe...')
#21 {main}". On line: 40
Thanks.