如何定義非共享服務
在服務容器中,所有服務預設為共享。 這表示每次您檢索服務時,都會取得 *相同* 的實例。 這通常是您想要的行為,但在某些情況下,您可能希望始終取得 *新的* 實例。
為了始終取得新的實例,請在您的服務定義中將 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 授權條款授權。