私は Symfony2 プロジェクトに取り組んでおり、ルート構成からコントローラーにパラメーターを渡す方法を見つけようとしています。ルート構成でデフォルト値を構成し、関数宣言で適切な var 名を使用してコントローラーで値を取得できることはわかっていますが、それはまさに私が望んでいるものではありません。
私のユースケースは次のとおりです。コントローラーには、2 つまたは 3 つの異なるルートからアクセスしたい標準メソッドがあります。呼び出されているルートに応じて、メソッドを異なる方法で「構成」したいと考えています。これはいくつかの方法で実現できます。
- 私のコントローラーでは、`$this->container->get("request")->get("_route") を使用してルート名を確認しますが、これは醜く、ルート名にハードコーディングされています。構成をコントローラーに移動します。これは、構成ではなく、単なるロジックである必要があります。
- 基本コントローラ クラスを作成し、異なるルートの各メソッドをサブクラス化します。サブクラス化された各メソッドは、メソッド内に必要な構成を持ちます。#1よりもクリーンなソリューションですが、単純なニーズのために複数のクラスを持つという意味で「重く」、構成データをビジネスロジックにプッシュします。
- 構成データをルート構成に入れます。コントローラで、必要に応じて構成データにアクセスします。理想的な解決策ですが、方法がわかりません。
ルートのデフォルト配列を使用して引数を指定できますが、正規表現を使用して、パラメーターが URL レベルでオーバーライドされないようにする必要があります (セキュリティ リスク)。これは機能的ですが、まだちょっとぎこちなく、かなりのハックではありません。
これを行うためのより良い方法があるに違いないと思いますが、それを理解できないようです。コントローラーからルーティング オブジェクトにアクセスし、さまざまな構成パラメーターにアクセスする方法はありますか?