Как определять необщие сервисы
Дата обновления перевода 2024-07-27
Как определять необщие сервисы
В сервис-контейнере, все сервисы являются общими по умолчанию. Это означает, что каждый раз, когда вы вызываете этот сервис, вы будете получать один и тот же экземпляр. Обычно, это то поведение, которого вы и хотите, но в некоторых случаях, вы можете захотеть всегда получать новый экземпляр.
Чтобы получать новый экземпляр каждый раз, установите настройку 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
из
контейнера, вам будет передан новый экземпляр.