ルートパラメータへのアクセスは、どちらの方が高速ですか?コントローラの引数としてsymfony2ルートパラメータの取得(コントローラ引数とリクエスト)
- 入れルートパラメータ
- 入手ルート
$this->getRequest()->get('param')
からパラメータそして、何リクエストオブジェクトについてはどうですか?より良い方法はコントローラオブジェクトとして要求オブジェクトを置くか、コントローラオブジェクトにgetRequest()
メソッドを呼び出すことですか?
ルートパラメータへのアクセスは、どちらの方が高速ですか?コントローラの引数としてsymfony2ルートパラメータの取得(コントローラ引数とリクエスト)
$this->getRequest()->get('param')
からパラメータそして、何リクエストオブジェクトについてはどうですか?より良い方法はコントローラオブジェクトとして要求オブジェクトを置くか、コントローラオブジェクトにgetRequest()
メソッドを呼び出すことですか?
Request
オブジェクトをコンテナから取り除く必要があるので、遅いアプローチですが、私は両方を行いましたが、その違いはごくわずかです。 Request
オブジェクトが必要なときは、コントローラーメソッドの引数として指定する方がよいでしょう。すぐにPHPタイプヒントが追加の情報(オートコンプリートなど)を適切なIDE(個人的にはPHPStormを推奨します)で提供するからです。これは他のコントローラメソッドの引数にも当てはまります。直線的な変数が与えられ、他の場所から2回引き出す必要はありません。
class SthController extends Controller
{
public function indexAction(Request $request, $arg1, $arg2)
{
// you have $request object with type hint and all goodness
}
}
もっと動的なので、getRequest()メソッドを使うべきだと思います!
'getRequest()'は '$ this-> container-> get( 'request')'のショートカットに過ぎませんが、Requestオブジェクトをアクションパラメータから取得することは、おそらく望ましいDIアプローチです。 実際にコントローラをサービスとして使用する場合、 'getRequest()'メソッドはありません。 –
Thx。どのようにコントローラから渡すパラメータが速いか、{{app.request.get( 'name')}} 'によってtwigテンプレートのパラメータを取得するのはどうでしょうか? – NHG
パフォーマンスに関しては、同じルールが適用されます( 'app.request.get'は' $ container-> get( 'request') - > get( 'name') ')に直接変換されます。しかし、コーディングスタイルでは、すべての状況で利用できるわけではないので、 'app'変数に頼るべきではありません(ESI、テンプレートなどを試してみて、数ヶ月前と同じ位置で終了します) - 最高です方法は、レンダリングテンプレート要求の前に計算する必要があるすべてのデータを送信することです。 –