Как определять необщие сервисы

Как определять необщие сервисы

В сервис-контейнере, все сервисы являются общими по умолчанию. Это означает, что каждый раз, когда вы вызываете этот сервис, вы будете получать один и тот же экземпляр. Обычно, это то поведение, которого вы и хотите, но в некоторых случаях, вы можете захотеть всегда получать новый экземпляр.

Чтобы получать новый экземпляр каждый раз, установите настройку shared в значение false в вашем определении сервиса:

  • YAML
  • XML
  • PHP
1
2
3
4
5
# app/config/services.yml
services:
    AppBundle\SomeNonSharedService:
        shared: false
        # ...

Теперь, каждый раз, когда вы запрашиваете AppBundle\SomeNonSharedService из контейнера, вам будет передан новый экземпляр.