私はSymfony2のの上に簡単なペーストビンWebアプリケーションを作成していないですが、私はグローバル/シングルトン/「コンテナスコープ」のサービスをすることはできません。私はおそらく初心者の間違いをしています。Symfony2のサービスはシングルトン
The symfony2 service container docは、サービスは「一度だけ作成され、同じインスタンスがサービスを要求するたびに返されます」と言いますが、リクエストごとにサービスコンストラクタが呼び出されています。
私は、ログからかなり簡単にこれを確認することができます。私はちょうど/p/new
をリフレッシュし、私は別の
[2012-03-31 21:32:56] app.INFO: InMemoryPasteService::__construct() [] []
を参照してください私はまた、(とハッシュがリクエストごとに異なります)コントローラで
spl_object_hash($this->get('twobulb_paste_service'))
の結果をロギングすることで確認してきました。
環境(アプリ/ PROD)は重要ではしていないようです。
How to work with Scopesは、デフォルトのスコープは、「コンテナ」ですので、私は私のサービスクラスの1つのインスタンスがあるはず意味することを取ると言います。
私は(ベンダーなし)symfonyの標準ディストリビューションバージョン2.0.12から始まりました。
ソースコード:
おそらく同様の記事:
- https://stackoverflow.com/questions/8873824/symfony2-service-definition-issue
- Symfony2 Service Container - does get() return objects by reference or copy?の
- How Service Container create object declared in services.yml?
任意のアイデア?
なぜあなたは意図的にシングルトンを使用しますか?**何でも**!また、 'InMemoryPasteService :: fetchMany()'メソッドは意味をなさない。 –
@tereško申し訳ありませんが、プログラミング言語の設計についてよく分かりませんが、シングルトンは正しい単語ではないかもしれません。たぶん[この文書](http://symfony.com/doc/current/book/service_container.html)は、Symfony2がサービスの利用を奨励する理由を理解するのに役立ちます。 fetchMany()に関しては、コードは進行中の作業です。私はthetメソッドを更新しました。今あなたには意味がありますか? –