Remove service that is passed as arg, but already autowired via constructor
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->defaults()
->autowire();
- $services->set(\App\SomeClass::class)
- ->arg('$someService', ref(\App\SomeService::class));
+ $services->set(\App\SomeClass::class);
};
final class SomeClass
{
public function __construct(private SomeService $someService)
{
}
}
Configure your rector.php:
<?php
use Rector\Config\RectorConfig;
use Rector\Symfony\Configs\Rector\Closure\RemoveConstructorAutowireServiceRector;
return RectorConfig::configure()
->withRules([
RemoveConstructorAutowireServiceRector::class,
]);