使用自动装配从 containerInterface 重新加载 Symfony 服务

Symfony reload service from containerInterface with autowiring

是否可以重新加载和自动装配服务?

我有一个提供程序 class,它使用许多服务,这些服务使用从数据库加载的自动装配配置。

当我通过 containerInterface 加载服务时,循环遍历提供商列表(在数据库中具有不同的配置)会产生相同的 class:

$objSearchProvider = $this->objContainer->get(
   $objService->getProvider()->getSearch()
);

提供商的 __constructor 仅在循环中第一次调用,因为它是相同的 class。

我知道有 $this->objContainer->reset() 函数,但这似乎并没有重新自动装配配置。

这可能吗?

如果您每次都需要一个新实例,则需要将您的服务定义为非共享服务

https://symfony.com/doc/current/service_container/shared.html