最近、Silex でのリクエスト転送に関する投稿を書きました。この記事では、ブログの例を使用して、Silex でのサブ リクエストについて説明しました。
ドメイン コントローラー用に、この例を少し変更したバージョンを使用します。ドメイン エンドポイントへのパス = /product/domain
ドメインには、Web ホスティング パッケージを添付することもできます。このエンドポイントの URL パスは /product/domain/(id)/webhosting/ になります。
URL パスを使用して、Web ホスティング パッケージに関する情報を取得できます。このエンドポイントの URL パスは、/product/domain/(id)/webhosting/(id) になります。
これらのサブ リクエストを処理するために、メソッド シグネチャにパラメータを持たない forwardRequest というメソッドがありますが、動的に保つために func_get_args を使用します。
残念ながら、Silex はルート内の名前付きパラメーターを使用してメソッドを呼び出すため、これは機能しません。したがって、/product/domain/domain_id/webhosting/webhosting_id がある場合、メソッドには method($domain_id, $webhosting_id) の署名が必要です。これは、1 つのメソッドで複数のエンドポイントを転送する場合の PITA です。追加の /product/domain/domain_id/emailhosting および /product/domain/domain_id/dns エンドポイントがある場合は、リクエストを転送するためにそれぞれのメソッドを作成する必要があります。
これらすべてのサブリクエストを転送するために1つのメソッドのみを使用できるソリューションはありますか?
注: PHP 5.3 を使用しています。