跳到內容

如何定義非共享服務

編輯此頁面

在服務容器中,所有服務預設為共享。 這表示每次您檢索服務時,都會取得 *相同* 的實例。 這通常是您想要的行為,但在某些情況下,您可能希望始終取得 *新的* 實例。

為了始終取得新的實例,請在您的服務定義中將 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 授權條款授權。
目錄
    版本