如何定义非共享服务
在服务容器中,所有服务默认都是共享的。这意味着每次你检索服务时,你都会得到 *相同* 的实例。这通常是你想要的行为,但在某些情况下,你可能希望始终获得一个 *新的* 实例。
为了始终获得一个新实例,请在你的服务定义中将 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
{
// ...
}
现在,无论何时你从容器中请求 App\SomeNonSharedService
,你都会得到一个新的实例。
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。