Як визначати не спільні сервіси

Дата оновлення перекладу 2022-11-25

Як визначати не спільні сервіси

У сервіс-контейнері всі сервіси є спільними за замовчуванням. Це означає, що кожний раз, коли ви викликаєте цей сервіс, ви отримуватимете один і той же екземпляр. Зазвичай, це та поведінка, якої ви хочете, але у деяких випадках, ви можете захотіти завжди отримувати новий екземпляр.

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

  • YAML
  • XML
  • PHP
1
2
3
4
5
# config/services.yaml
services:
    App\SomeNonSharedService:
        shared: false
        # ...

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