2011-11-16 8 views

答えて

3

あなたは、(部分テンプレート、)ビューを表示している場合は自動的に変数が$sf_requestと呼ばれています。

他の人は、コンテキストシングルトンでそれを保持することができます:sfContext::getInstance()->getRequest()。この問題は、何らかの理由でコンテキストが作成されていない場合に問題となることがあるということです。これはsfContext::hasInstance()で確認できますが、コンテキストが存在しない場合は、この方法ではこのようにリクエストを取得できません。

リスナーで必要なレイヤー/オブジェクトにリクエストインスタンスをcontext.load_factoriesに注入することもできます。ただし、これは、そのイベントがトリガーされた後(たとえば、コンテキストが初期化されたなど)、そのレイヤーを使用しているレイヤーがそうしている必要があります。

基本的に何イムはここで得ることは本当にあなたが「sfContextの使用に起因する必要があります

+0

:-)コントローラの外部の要求にアクセスするための理由があるはずのことです::のgetInstance() - >のGetRequest () "? – Flukey

+1

私はどこでもそれをやりたいと思います。あなたは本当に必要がありません。ビューのビューですでに利用可能になっていて、コントローラの設定ロジックか、 'context.load_factories'のリスナを介して注入することができます。しかし、コントローラレイヤーを超えて使用する必要があるものは何も考えられません。 – prodigitalson