--- date: 2020-11-09 id: 764a4845-b98c-43f6-9b9c-f5b6cc849e7f title: Local Service Binding --- # Introduction Since [Symfony 4.0](20201109140137-symfony_4_0) autowiring scalar arguments has been simplified with local binding: # Syntax ## Pre Symfony 4.0 ``` yaml services: _defaults: autowire: true autoconfigure: true public: false App\Some\Service1: $projectDir: '%kernel.project_dir%' App\Some\Service2: $projectDir: '%kernel.project_dir%' App\Some\Service3: $projectDir: '%kernel.project_dir%' ``` ## Post Symfony 4.0 ``` yaml services: _defaults: autowire: true autoconfigure: true public: false bind: $projectDir: '%kernel.project_dir%' ``` ## Explicitly define injection services ``` yaml # when services created/defined in this file inject 'BarInterface', # use the '@normal_bar_service' ... services: _defaults: bind: BarInterface: "@normal_bar_service" # ... except for this particular service, which uses a different service Foo: bind: BarInterface: "@special_bar_service" ```