How to Define Non Shared Services

In the service container, all services are shared by default. This means that each time you retrieve the service, you'll get the same instance. This is usually the behavior you want, but in some cases, you might want to always get a new instance.

サービス コンテナでは、デフォルトですべてのサービスが共有されます。つまり、サービスを取得するたびに、同じインスタンスが取得されます。これは通常、必要な動作ですが、場合によっては、常に新しいインスタンスを取得したい場合があります。

In order to always get a new instance, set the shared setting to false in your service definition:

常に新しいインスタンスを取得するには、サービス定義で共有設定を false に設定します。
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
# config/services.yaml
services:
    App\SomeNonSharedService:
        shared: false
        # ...

Now, whenever you request the App\SomeNonSharedService from the container, you will be passed a new instance.

これで、コンテナーから App\SomeNonSharedService を要求するたびに、新しいインスタンスが渡されます。