parameters() // ->set(...) ; $services = $container->services() ->defaults() ->autowire() ->autoconfigure() ; // Makes classes in src/ available to be used as services $src = dirname(__DIR__).'/src'; $services ->load('App\\', $src) ->exclude([ $src.'/DependencyInjection', $src.'/Entity', $src.'/Migrations', $src.'/Tests', $src.'/Kernel.php', ]) ; // Controllers are imported separately to make sure services can be injected // as action arguments even if you don't extend any base controller class $services ->load('App\\Controller\\', $src.'/Controller') ->tag('controller.service_arguments') ; // Add more service definitions when explicit configuration is needed. // Please note that last definitions *replace* previous ones when using $services->set(). // It is possible to alter a previously declared definition by using $services->get() instead. $services // ->set(App\MyService::class) // ->args([di\ref(App\AnotherService::class)]) ; if ('test' === $kernel->getEnvironment()) { // When a test case needs access to a service, getting it via // a public alias with the "test." prefix is recommended. $services->public() // ->alias('test.App\MyService', App\MyService::class) ; } };