0

私は FOSRestBundle をセットアップしていますが、疑問があります。Symfony2 ルーティング コンポーネントに関連しているかどうか、または他の方法で実行できるかどうかはわかりません。ここ、

X-PDONE-SESSION-ID1)メソッドを実行する前に、リクエストヘッダーに設定されているかどうかを確認するにはどうすればよいですか? これは、ルーティングの注釈を使用して実行できますか? それを確認する方法についてのアイデアはありますか?

2)有効な URL をチェックするためのルート\b(?:(?:https?):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]として、この RegEx を使用する必要があります。requirements@QueryParam(name="token", requirements="")

ここここを読みましたが、まったく役に立ちませんでした。

4

1 に答える 1

1

(1)役に立たないとあなたが参照した本の記事に記載されている方法を使用して行うことができます。

これまで見てきたように、特定のルーティング ワイルドカード (正規表現による)、HTTP メソッド、またはホスト名のみに一致するようにルートを作成できます。ただし、条件を使用してルーティング システムを拡張し、ほぼ無限の柔軟性を持たせることができます。

contact: path: /contact defaults: { _controller: AcmeDemoBundle:Main:contact } condition: "context.getMethod() in ['GET', 'HEAD'] and request.headers.get('User-Agent') match ' /firefox/i'"

条件は式であり、その構文の詳細については、 式の構文 を参照してください。これにより、HTTP メソッドが GET または HEAD であり、User-Agentヘッダーが firefox に一致しない限り、ルートは一致しません。


(2) では、クエリ パラメータだけでなく、完全な URL の正規表現を示しています。私の知る限り、デフォルトで Routing コンポーネントが使用する正規表現全体を変更することはできません。

于 2015-05-14T21:06:58.653 に答える