-1

レガシー PHP プロジェクト (オブジェクト指向以前) を Symfony2 に移行しています。すべてのリクエストで、次のことを行う必要があります。

  • いくつかの動的データを計算します(現在の日付および/またはいくつかのリクエストパラメーターに応じて)
  • レンダリングされた応答でそのデータを (複数回!) 使用します。

単純なアプローチは次のようになります。

  • すべてのコントローラー メソッドの開始時に、何らかのグローバル ヘルパー関数を呼び出してデータを計算します。
  • すべてのコントローラー メソッドの最後で、データをパラメーターとして twig テンプレートに渡します。

退屈に聞こえます。多分それはより良いでしょう:

  • リクエストが受信されたときにデータを計算し、getter メソッドを介してデータへのアクセスを提供するリクエスト イベントのサブスクライバーを作成します。
  • そのサブスクライバー/サービスを でグローバル twig 変数として定義しますconfig.yml
  • twig テンプレートでは、必要に応じてそのサービスの getter メソッドを呼び出します。

それは実行可能ですか?特に、twig 変数/サービスとサブスクライバーは常に同一ですか? または、サービスは新しく作成されたインスタンスである可能性がありますか?

これはある種の悪用ですか?または、そのようなユースケースに対して公式に推奨される方法はありますか?

EDITデータは、すべての twig テンプレートだけでなく、一部のコントローラーでも必要です。

4

1 に答える 1