0

Symfony 2 内で依存性注入を介してロードするクラスがあります。これには、セッターでオーバーライドできるデフォルトのプライベート変数がいくつかあります。

問題は、これらのデフォルト値の 1 つがページ内で別の値に設定されると、自動的に元に戻す方法がないことです。依存性注入の有用性が失われるため、newを使用してクラスを再度呼び出したくありません。

では、Symfony2 は Object LifeStyle をサポートしていますか、それとも基本的に、すべてのデフォルトを通常の状態にリセットして必要なたびに呼び出す public 関数を作成する必要がありますか。

例として、クラスを使用してリモート ファイルを取得します。UserAgent、Accepted Language/Encoding、Method などのデフォルトがあります。しかし、メソッドを POST に設定すると、ページ内の 1 つの呼び出しのデフォルトの GET の代わりに、次に呼び出したときに POST のままです。もう一度デフォルトの GET にしたいのですが、依存性注入の代わりにnewを使用した場合はそうなります。

4

1 に答える 1

0

scope: プロトタイプをサービス定義に追加します。これにより、クラスをリクエストするたびにコンテナから新しいインスタンスを確実に取得できます。もちろん、インスタンスにはデフォルト値があります。

http://symfony.com/doc/current/cookbook/service_container/scopes.html

于 2013-08-02T17:34:01.630 に答える