Як визначати не спільні сервіси
Дата оновлення перекладу 2024-06-05
Як визначати не спільні сервіси
У сервіс-контейнері всі сервіси є спільними за замовчуванням. Це означає, що кожний раз, коли ви викликаєте цей сервіс, ви отримуватимете один і той же екземпляр. Зазвичай, це та поведінка, якої ви хочете, але у деяких випадках, ви можете захотіти завжди отримувати новий екземпляр.
Щоб отримувати новий екземпляр кожний раз, встановіть налаштування shared
як
false
у вашому визначенні сервісу:
1 2 3 4 5 6 7 8 9 10
// src/SomeNonSharedService.php
namespace App;
use Symfony\Component\DependencyInjection\Attribute\Autoconfigure;
#[Autoconfigure(shared: false)]
class SomeNonSharedService
{
// ...
}
Тепер, кожний раз, коли ви запитуєте AppBundle\SomeNonSharedService
з
контейнера, вам буде передано новий екземпляр.